python and api fixes
This commit is contained in:
		| @@ -7,7 +7,9 @@ import json | ||||
| from . import * | ||||
|  | ||||
| ################################################################## | ||||
| BOGUS_KEY = veilid.TypedKey.from_value(veilid.CryptoKind.CRYPTO_KIND_VLD0, veilid.PublicKey.from_bytes(b'                                ')) | ||||
| BOGUS_KEY = veilid.TypedKey.from_value( | ||||
|     veilid.CryptoKind.CRYPTO_KIND_VLD0, veilid.PublicKey.from_bytes(b'                                ')) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_get_dht_value_unopened(api_connection: veilid.VeilidAPI): | ||||
| @@ -24,6 +26,7 @@ async def test_open_dht_record_nonexistent_no_writer(api_connection: veilid.Veil | ||||
|         with pytest.raises(veilid.VeilidAPIError): | ||||
|             out = await rc.open_dht_record(BOGUS_KEY, None) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_close_dht_record_nonexistent(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
| @@ -31,13 +34,15 @@ async def test_close_dht_record_nonexistent(api_connection: veilid.VeilidAPI): | ||||
|         with pytest.raises(veilid.VeilidAPIError): | ||||
|             await rc.close_dht_record(BOGUS_KEY) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_delete_dht_record_nonexistent(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
|     async with rc: | ||||
|         with pytest.raises(veilid.VeilidAPIError): | ||||
|             await rc.delete_dht_record(BOGUS_KEY) | ||||
|          | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_create_delete_dht_record_simple(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
| @@ -46,6 +51,7 @@ async def test_create_delete_dht_record_simple(api_connection: veilid.VeilidAPI) | ||||
|         await rc.close_dht_record(rec.key) | ||||
|         await rc.delete_dht_record(rec.key) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_get_dht_value_nonexistent(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
| @@ -55,34 +61,34 @@ async def test_get_dht_value_nonexistent(api_connection: veilid.VeilidAPI): | ||||
|         await rc.close_dht_record(rec.key) | ||||
|         await rc.delete_dht_record(rec.key) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_set_get_dht_value(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
|     async with rc: | ||||
|         rec = await rc.create_dht_record(veilid.DHTSchema.dflt(2)) | ||||
|          | ||||
|  | ||||
|         vd = await rc.set_dht_value(rec.key, 0, b"BLAH BLAH BLAH") | ||||
|         assert vd != None | ||||
|          | ||||
|         assert vd == None | ||||
|  | ||||
|         vd2 = await rc.get_dht_value(rec.key, 0, False) | ||||
|         assert vd2 != None | ||||
|          | ||||
|  | ||||
|         vd3 = await rc.get_dht_value(rec.key, 0, True) | ||||
|         assert vd3 != None | ||||
|  | ||||
|         vd4 = await rc.get_dht_value(rec.key, 1, False) | ||||
|         assert vd4 == None | ||||
|  | ||||
|         print("vd: {}", vd.__dict__) | ||||
|         print("vd2: {}", vd2.__dict__) | ||||
|         print("vd3: {}", vd3.__dict__) | ||||
|  | ||||
|         assert vd == vd2 | ||||
|         assert vd2 == vd3 | ||||
|  | ||||
|         await rc.close_dht_record(rec.key) | ||||
|         await rc.delete_dht_record(rec.key) | ||||
|  | ||||
|  | ||||
| @pytest.mark.asyncio | ||||
| async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|     rc = await api_connection.new_routing_context() | ||||
| @@ -104,10 +110,7 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|  | ||||
|         # Test subkey writes | ||||
|         vdtemp = await rc.set_dht_value(key, 1, va) | ||||
|         assert vdtemp != None | ||||
|         assert vdtemp.data == va | ||||
|         assert vdtemp.seq == 0 | ||||
|         assert vdtemp.writer == owner | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         vdtemp = await rc.get_dht_value(key, 1, False) | ||||
|         assert vdtemp.data == va | ||||
| @@ -118,8 +121,7 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         vdtemp = await rc.set_dht_value(key, 0, vb) | ||||
|         assert vdtemp.data == vb | ||||
|         assert vdtemp.seq == 0 | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         vdtemp = await rc.get_dht_value(key, 0, True) | ||||
|         assert vdtemp.data == vb | ||||
| @@ -129,17 +131,11 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|  | ||||
|         # Equal value should not trigger sequence number update | ||||
|         vdtemp = await rc.set_dht_value(key, 1, va) | ||||
|         assert vdtemp != None | ||||
|         assert vdtemp.data == va | ||||
|         assert vdtemp.seq == 0 | ||||
|         assert vdtemp.writer == owner | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         # Different value should trigger sequence number update | ||||
|         vdtemp = await rc.set_dht_value(key, 1, vb) | ||||
|         assert vdtemp != None | ||||
|         assert vdtemp.data == vb | ||||
|         assert vdtemp.seq == 1 | ||||
|         assert vdtemp.writer == owner | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         # Now that we initialized some subkeys | ||||
|         # and verified they stored correctly | ||||
| @@ -166,11 +162,8 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|  | ||||
|         # Verify subkey 1 can be set a second time and it updates because seq is newer | ||||
|         vdtemp = await rc.set_dht_value(key, 1, vc) | ||||
|         assert vdtemp != None | ||||
|         assert vdtemp.data == vc | ||||
|         assert vdtemp.seq == 2 | ||||
|         assert vdtemp.writer == owner | ||||
|          | ||||
|         assert vdtemp == None | ||||
|  | ||||
|         # Verify the network got the subkey update with a refresh check | ||||
|         vdtemp = await rc.get_dht_value(key, 1, True) | ||||
|         assert vdtemp != None | ||||
| @@ -183,7 +176,7 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|  | ||||
|         await rc.close_dht_record(key) | ||||
|         await rc.delete_dht_record(key) | ||||
|          | ||||
|  | ||||
|         rec = await rc.open_dht_record(key, other_keypair) | ||||
|         assert rec != None | ||||
|         assert rec.key == key | ||||
| @@ -195,12 +188,11 @@ async def test_open_writer_dht_value(api_connection: veilid.VeilidAPI): | ||||
|         # Verify subkey 1 can NOT be set because we have the wrong writer | ||||
|         with pytest.raises(veilid.VeilidAPIError): | ||||
|             vdtemp = await rc.set_dht_value(key, 1, va) | ||||
|      | ||||
|  | ||||
|         # Verify subkey 0 can NOT be set because we have the wrong writer | ||||
|         with pytest.raises(veilid.VeilidAPIError): | ||||
|             vdtemp = await rc.set_dht_value(key, 0, va) | ||||
|          | ||||
|  | ||||
|         # Clean up | ||||
|         await rc.close_dht_record(key) | ||||
|         await rc.delete_dht_record(key) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user