def test_nested_receipts(): v = [ UInt.defer(value=1), [ UInt.defer(value=2), UInt.defer(value=3), ], { 'key_a': UInt.defer(value=4), 'key_b': [ UInt.defer(value=5), UInt.defer(value=6), ], 'key_c': { 'key_d': UInt.defer(value=7), 'key_e': UInt.defer(value=8), 'key_f': Address.defer( key='SomeContract', value='0xd3cda913deb6f67967b99d67acdfa1712c293601', ), }, }, ] value_setters = generate_registrar_value_setters(v) assert len(value_setters) == 9 expected_keys = { '0', '1/0', '1/1', '2/key_a', '2/key_b/0', '2/key_b/1', '2/key_c/key_d', '2/key_c/key_e', 'SomeContract', } actual_keys = {s.key for s in value_setters} assert actual_keys == expected_keys
from populus.migrations.deferred import DeferredValue, Address from populus.migrations.writer import serialize_deconstructable class Deferred(DeferredValue): a = None b = None c = None @pytest.mark.parametrize( "value,expected_imports,expected_value", ( ( Address.defer(key="abcd"), {"populus.migrations.deferred"}, """populus.migrations.deferred.Address.defer( key='abcd', )\n""", ), ( Deferred.defer(c=4), {__name__}, """{module_part}.Deferred.defer( c=4, )\n""".format( module_part=__name__ ), ), ),
) from populus.migrations.writer import ( serialize_deconstructable, ) class Deferred(DeferredValue): a = None b = None c = None @pytest.mark.parametrize( 'value,expected_imports,expected_value', ( ( Address.defer(key='abcd'), {'populus.migrations.deferred'}, """populus.migrations.deferred.Address.defer( key='abcd', )\n""", ), ( Deferred.defer(c=4), {__name__}, """{module_part}.Deferred.defer( c=4, )\n""".format(module_part=__name__), ), ), ) def test_serialization_of_deferred_values(value, expected_imports,