Skip to content

Commit

Permalink
Merge pull request #698 from ylil93/native_python_rebase
Browse files Browse the repository at this point in the history
#604 Refactor py core to use native py types
  • Loading branch information
Abhi Keshav committed Feb 28, 2018
2 parents dc9c22f + 4399bb9 commit 0f37a07
Show file tree
Hide file tree
Showing 15 changed files with 169 additions and 127 deletions.
4 changes: 2 additions & 2 deletions sdk/python/core/tests/test_netconf_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ def test_delete_leaf(self):
self.crud.create(self.ncc, runner)

# DELETE
runner.ytypes.built_in_t.number8.yfilter = YFilter.delete
runner.ytypes.built_in_t.number8 = YFilter.delete
self.crud.update(self.ncc, runner)

# DELETE AGAIN WITH ERROR
Expand All @@ -220,7 +220,7 @@ def test_delete_leaflist(self):
self.crud.create(self.ncc, runner)

# DELETE
runner.ytypes.built_in_t.enum_llist.yfilter = YFilter.delete
runner.ytypes.built_in_t.enum_llist = YFilter.delete
self.crud.update(self.ncc, runner)

# DELETE AGAIN WITH ERROR
Expand Down
4 changes: 2 additions & 2 deletions sdk/python/core/tests/test_on_demand.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,13 +168,13 @@ def test_on_demand_downloading(self):
def test_on_demand_loading_xml(self):
self.codec_provider.encoding = EncodingFormat.XML
entity1 = self.codec.decode(self.codec_provider, AUGMENTED_XML_PAYLOAD)
self.assertEqual(entity1.lib.ydktest_aug_4.ydktest_aug_nested_4.aug_four.get()=="aug four", True)
self.assertEqual(entity1.lib.ydktest_aug_4.ydktest_aug_nested_4.aug_four, "aug four")


def test_on_demand_loading_json(self):
self.codec_provider.encoding = EncodingFormat.JSON
entity1 = self.codec.decode(self.codec_provider, AUGMENTED_JSON_PAYLOAD)
self.assertEqual(entity1.doc.aug_5_identityref.get(), "ydktest-aug-ietf-5:derived-aug-identity")
self.assertEqual(entity1.doc.aug_5_identityref, "ydktest-aug-ietf-5:derived-aug-identity")



Expand Down
4 changes: 2 additions & 2 deletions sdk/python/core/tests/test_opendaylight.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ def test_read_ODL(self):
node_provider = self.odl.get_node_provider('xr')
bgp_read = self.crud.read_config(node_provider, bgp_filter)

self.assertEqual(bgp_read.global_.config.as_.get(), '65172')
self.assertEqual(bgp_read.global_.config.router_id.get(), '1.2.3.4')
self.assertEqual(bgp_read.global_.config.as_, '65172')
self.assertEqual(bgp_read.global_.config.router_id, '1.2.3.4')

def test_create_ODL(self):
bgp = oc_bgp.Bgp()
Expand Down
10 changes: 6 additions & 4 deletions sdk/python/core/tests/test_sanity_codec.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,8 +255,8 @@ def test_json_encode_2(self):
def test_json_decode_1(self):
self.provider.encoding = EncodingFormat.JSON
entity = self.codec.decode(self.provider, self._json_runner_payload)
self.assertEqual(self._json_runner_payload,
self.codec.encode(self.provider, entity))
payload = self.codec.encode(self.provider, entity)
self.assertEqual(self._json_runner_payload, payload)

def test_json_encode_decode(self):
self.provider.encoding = EncodingFormat.JSON
Expand Down Expand Up @@ -300,6 +300,7 @@ def test_xml_subtree(self):
r_1 = self._get_runner_entity()
payload = self.codec.encode(self.provider, r_1, subtree=True)
self.assertEqual(self._xml_runner_payload[:-1], payload)

r_2 = self.codec.decode(self.provider, payload, subtree=True)
self.assertEqual(r_1, r_2)

Expand All @@ -311,14 +312,14 @@ def test_embedded_quote_leaflist_value(self):
<community-set>
<community-set-name>COMMUNITY-SET1</community-set-name>
<config>
<community-set-name>COMMUNITY-SET1</community-set-name>
<community-member>ios-regex '^65172:17...$'</community-member>
<community-member>65172:16001</community-member>
<community-set-name>COMMUNITY-SET1</community-set-name>
</config>
<state>
<community-set-name>COMMUNITY-SET1</community-set-name>
<community-member>ios-regex '^65172:17...$'</community-member>
<community-member>65172:16001</community-member>
<community-set-name>COMMUNITY-SET1</community-set-name>
</state>
</community-set>
</community-sets>
Expand All @@ -343,6 +344,7 @@ def test_embedded_quote_leaflist_value(self):
routing_policy.defined_sets.bgp_defined_sets.community_sets.community_set.append(com)
xml_provider = CodecServiceProvider(type='xml')
payload = self.codec.encode(xml_provider, routing_policy)

self.assertEqual(xml, payload)
routing_policy_decode = self.codec.decode(xml_provider, payload)
self.assertEqual(routing_policy, routing_policy_decode)
Expand Down
12 changes: 6 additions & 6 deletions sdk/python/core/tests/test_sanity_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def test_delete_object_on_leaf(self):

# use DELETE object to remove leaf one
runner_update = runner_read
runner_update.ydktest_sanity_one.name.yfilter = YFilter.delete
runner_update.ydktest_sanity_one.name = YFilter.delete
self.crud.update(self.ncc, runner_update)

# manually create remaining runner with leaf two
Expand All @@ -128,15 +128,15 @@ def test_delete_on_leaflist_slice(self):
runner_update.ytypes.built_in_t.llstring.append('0')
runner_update.ytypes.built_in_t.llstring.append('3')
# set yfilter
runner_update.ytypes.built_in_t.llstring.yfilter = YFilter.delete
runner_update.ytypes.built_in_t.llstring = YFilter.delete

self.crud.update(self.ncc, runner_update)
runner_read = self.read_from_empty_filter()

runner_compare = runner_create
runner_compare.ydktest_sanity_one.name = 'one'

runner_compare.ytypes.built_in_t.llstring.clear()
runner_compare.ytypes.built_in_t.llstring = []
runner_compare.ytypes.built_in_t.llstring.extend(['1', '2', '4'])

self.assertEqual(runner_compare, runner_read)
Expand All @@ -150,7 +150,7 @@ def test_delete_on_leaflist(self):

runner_update = ysanity.Runner()
runner_update.ytypes.built_in_t.llstring.append('3')
runner_update.ytypes.built_in_t.llstring.yfilter = YFilter.delete
runner_update.ytypes.built_in_t.llstring = YFilter.delete

self.crud.update(self.ncc, runner_update)
runner_read = self.read_from_empty_filter()
Expand All @@ -165,7 +165,7 @@ def test_delete_on_list_with_identitykey(self):
runner = ysanity.Runner()
a1 = ysanity.Runner.OneList.IdentityList()
a1.config.id = ysanity.ChildIdentity()
a1.id_ref = a1.config.id.get()
a1.id_ref = a1.config.id.to_string()
runner.one_list.identity_list.append(a1)
self.crud.create(self.ncc, runner)

Expand All @@ -174,7 +174,7 @@ def test_delete_on_list_with_identitykey(self):
runner_update = ysanity.Runner()
k = ysanity.Runner.OneList.IdentityList()
k.config.id = ysanity.ChildIdentity()
k.id_ref = k.config.id.get()
k.id_ref = k.config.id.to_string()
k.yfilter = YFilter.delete
runner_update.one_list.identity_list.append(k)

Expand Down
12 changes: 6 additions & 6 deletions sdk/python/core/tests/test_sanity_errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
8. \(self: ydk_.types.YLeaf, value: ydk_.types.Empty\) -> None
9. \(self: ydk_.types.YLeaf, value: ydk_.types.Identity\) -> None
10. \(self: ydk_.types.YLeaf, value: ydk_.types.Bits\) -> None
11. \(self: ydk_.types.YLeaf, value: (unicode|str)\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.YLeaf\) -> None
11. \(self: ydk_.types.YLeaf, value: unicode\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.Enum.YLeaf\) -> None
13. \(self: ydk_.types.YLeaf, value: ydk_.types.Decimal64\) -> None
Invoked with: , {}"""
Expand All @@ -60,8 +60,8 @@
8. \(self: ydk_.types.YLeaf, value: ydk_.types.Empty\) -> None
9. \(self: ydk_.types.YLeaf, value: ydk_.types.Identity\) -> None
10. \(self: ydk_.types.YLeaf, value: ydk_.types.Bits\) -> None
11. \(self: ydk_.types.YLeaf, value: (unicode|str)\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.YLeaf\) -> None
11. \(self: ydk_.types.YLeaf, value: unicode\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.Enum.YLeaf\) -> None
13. \(self: ydk_.types.YLeaf, value: ydk_.types.Decimal64\) -> None
Invoked with: , \[\]"""
Expand All @@ -81,8 +81,8 @@
8. \(self: ydk_.types.YLeaf, value: ydk_.types.Empty\) -> None
9. \(self: ydk_.types.YLeaf, value: ydk_.types.Identity\) -> None
10. \(self: ydk_.types.YLeaf, value: ydk_.types.Bits\) -> None
11. \(self: ydk_.types.YLeaf, value: (unicode|str)\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.YLeaf\) -> None
11. \(self: ydk_.types.YLeaf, value: unicode\) -> None
12. \(self: ydk_.types.YLeaf, value: ydk_.types.Enum.YLeaf\) -> None
13. \(self: ydk_.types.YLeaf, value: ydk_.types.Decimal64\) -> None
Invoked with: , \['name_str'\]"""
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/core/tests/test_sanity_filter_read.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def test_CASE2(self):
def test_CASE3(self):
"""Assign a READ object to `a.a1` should only return data on this leaf."""
a = ysanity.A()
a.a1.yfilter = YFilter.read
a.a1 = YFilter.read
a_read = self.crud.read(self.ncc, a)
preconfig_a = ysanity.A()
preconfig_a.a1 = "some value"
Expand Down
31 changes: 15 additions & 16 deletions sdk/python/core/tests/test_sanity_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,23 +62,23 @@ def test_read_on_ref_class(self):

r_2.ydktest_sanity_one.yfilter = YFilter.read
r_2 = self.crud.read(self.ncc, r_2)
self.assertEqual(r_1.ydktest_sanity_one.number, r_2.ydktest_sanity_one.number)
self.assertEqual(r_1.ydktest_sanity_one.name, r_2.ydktest_sanity_one.name)
self.assertEqual(r_1, r_2)

def test_read_on_leaf(self):
r_1 = ysanity.Runner()
r_1.ydktest_sanity_one.number, r_1.ydktest_sanity_one.name = 1, 'runner:one:name'
self.crud.create(self.ncc, r_1)
r_2 = ysanity.Runner()
r_2.ydktest_sanity_one.number.yfilter = YFilter.read

r_2.ydktest_sanity_one.number = YFilter.read
r_2 = self.crud.read(self.ncc, r_2)
self.assertEqual(r_2.ydktest_sanity_one.number, r_1.ydktest_sanity_one.number)
self.assertEqual(r_1, r_2)

# this will also read r_2.ydktest_sanity_one.name, not able to read only one of them
r_2 = ysanity.Runner()
r_2.ydktest_sanity_one.number = 1
r_2 = self.crud.read(self.ncc, r_2)
self.assertEqual(r_2.ydktest_sanity_one.number, r_1.ydktest_sanity_one.number)
self.assertEqual(r_1, r_2)

# no such value, will return empty data
r_2 = ysanity.Runner()
Expand All @@ -93,7 +93,7 @@ def test_read_on_ref_enum_class(self):
self.crud.create(self.ncc, r_1)

r_2 = ysanity.Runner()
r_2.ytypes.built_in_t.enum_value.yfilter = YFilter.read
r_2.ytypes.built_in_t.enum_value = YFilter.read
runner_read = self.crud.read(self.ncc, r_2)
self.assertEqual(r_1.enum_value, runner_read.ytypes.built_in_t.enum_value)

Expand All @@ -119,8 +119,8 @@ def test_read_on_ref_list(self):
r_2.one_list.ldata.yfilter = YFilter.read
runner_read = self.crud.read(self.ncc, r_2)

self.assertEqual(runner_read.one_list.ldata[0].number, r_1.ldata[0].number)
self.assertEqual(runner_read.one_list.ldata[1].number, r_1.ldata[1].number)
self.assertEqual(runner_read, r_1)
self.assertEqual(runner_read, r_1)

def test_read_on_list_with_key(self):
r_1 = ysanity.Runner.OneList()
Expand All @@ -133,36 +133,35 @@ def test_read_on_list_with_key(self):
r_2.one_list.ldata.extend([l_1])
runner_read = self.crud.read(self.ncc, r_2)

self.assertEqual(runner_read.one_list.ldata[0].number, r_2.one_list.ldata[0].number)
self.assertEqual(runner_read, r_2)

def test_read_on_leaflist(self):
r_1 = ysanity.Runner.Ytypes.BuiltInT()
r_1.llstring.extend(['1', '2', '3'])
self.crud.create(self.ncc, r_1)

r_2 = ysanity.Runner()
r_2.ytypes.built_in_t.llstring.yfilter = YFilter.read
r_2.ytypes.built_in_t.llstring = YFilter.read
runner_read = self.crud.read(self.ncc, r_2)
self.assertEqual(runner_read.ytypes.built_in_t.llstring, r_1.llstring)


def test_read_on_identity_ref(self):
r_1 = ysanity.Runner.Ytypes.BuiltInT()
r_1.identity_ref_value = ysanity.ChildIdentity()
self.crud.create(self.ncc, r_1)

r_2 = ysanity.Runner()
r_2.ytypes.built_in_t.identity_ref_value.yfilter = YFilter.read
r_2.ytypes.built_in_t.identity_ref_value = YFilter.read
runner_read = self.crud.read(self.ncc, r_2)
self.assertEqual(r_1.identity_ref_value, runner_read.ytypes.built_in_t.identity_ref_value)
self.assertEqual(r_1.identity_ref_value.to_string(), runner_read.ytypes.built_in_t.identity_ref_value)

def test_read_only_config(self):
r_1 = ysanity.Runner()
r_1.ydktest_sanity_one.number, r_1.ydktest_sanity_one.name = 1, 'runner:one:name'
self.crud.create(self.ncc, r_1)
r_2, r_3 = ysanity.Runner(), ysanity.Runner()
r_2.ydktest_sanity_one.number.yfilter = YFilter.read
r_3.ydktest_sanity_one.number.yfilter = YFilter.read
r_2.ydktest_sanity_one.number = YFilter.read
r_3.ydktest_sanity_one.number = YFilter.read

r_2 = self.crud.read_config(self.ncc, r_2)
r_3 = self.crud.read(self.ncc, r_3)
Expand All @@ -182,7 +181,7 @@ def test_decoder(self):

r_2 = ysanity.Runner()
runner_read = self.crud.read(self.ncc, r_2)
self.assertEqual(runner.one_list.ldata[0].number, runner_read.one_list.ldata[0].number)
self.assertEqual(runner, runner_read)
self.assertEqual(runner.one_list.ldata[0].name, runner_read.one_list.ldata[0].name)


Expand Down
4 changes: 2 additions & 2 deletions sdk/python/core/tests/test_sanity_levels.py
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ def test_leafref_simple_pos(self):
# READ
r_1, r_2 = Runner(), Runner()
r_1.ytypes.built_in_t.number8 = 100
r_1.ytypes.built_in_t.leaf_ref = r_1.ytypes.built_in_t.number8.get()
r_1.ytypes.built_in_t.leaf_ref = r_1.ytypes.built_in_t.number8
self.crud.create(self.ncc, r_1)
r_2 = self.crud.read(self.ncc, r_2)

Expand All @@ -495,7 +495,7 @@ def test_leafref_simple_pos(self):
# UPDATE
r_1, r_2 = Runner(), Runner()
r_1.ytypes.built_in_t.number8 = 110
r_1.ytypes.built_in_t.leaf_ref = r_1.ytypes.built_in_t.number8.get()
r_1.ytypes.built_in_t.leaf_ref = r_1.ytypes.built_in_t.number8
self.crud.update(self.ncc, r_1)
r_2 = self.crud.read(self.ncc, r_2)

Expand Down
9 changes: 5 additions & 4 deletions sdk/python/core/tests/test_sanity_type_mismatch_errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@
test_invalid_class_assignment_identity_pattern = "Invalid value '<ydk.models.ydktest.ydktest_sanity_types.AnotherOne object at [0-9a-z]+>' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>'"
test_invalid_class_assignment_enum_pattern = "Invalid value 'ydk.types.Enum.YLeaf\(none\)' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>'"
test_invalid_class_assignment_ylist_pattern = "Invalid value '\[<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*Ldata object at [0-9a-z]+>\]' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>"
test_invalid_class_assignment_yleaflist_pattern = "Invalid value 'YLeafList\('llstring', \[0, 1, 2, 3, 4\]\)' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>'"
test_invalid_class_assignment_yleaflist_pattern = "Invalid value '\['0', '1', '2', '3', '4'\]' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>'"
# test_invalid_class_assignment_yleaflist_pattern = "Invalid value 'YLeafList\('llstring', \[0, 1, 2, 3, 4\]\)' in '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>'"
test_invalid_list_assignment_int_pattern = "Attempt to assign value of '1' to YList ldata. Please use list append or extend method."
test_invalid_list_assignment_entity_pattern = "Attempt to assign value of '<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*One object at [0-9a-z]+>' to YList ldata. Please use list append or extend method."
test_invalid_list_assignment_llist_pattern = "Attempt to assign value of 'YLeafList\('llstring', \[0, 1, 2, 3, 4\]\)' to YList ldata. Please use list append or extend method."
test_invalid_llist_assignment_int_pattern = "Invalid value '1' in 'llstring'"
test_invalid_llist_assignment_list_pattern = "Invalid value '\[<ydk.models.ydktest.ydktest_sanity.[a-zA-Z\.]*Ldata object at [0-9a-z]+>\]' in 'llstring'"
test_invalid_list_assignment_llist_pattern = "Attempt to assign value of '\['0', '1', '2', '3', '4'\]' to YList ldata. Please use list append or extend method."
test_invalid_llist_assignment_int_pattern = "Invalid value '1' in '\[\]'"
test_invalid_llist_assignment_list_pattern = "append\(\): incompatible function arguments\. The following argument types are supported:"


class SanityYang(unittest.TestCase):
Expand Down
Loading

0 comments on commit 0f37a07

Please sign in to comment.