def test_aug_onelist_pos(self): # CREATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1 = ysanity.Runner.OneList.OneAugList.Ldata() e_2 = ysanity.Runner.OneList.OneAugList.Ldata() e_1.number = 1 e_1.name = e_1._common_path e_2.number = 2 e_2.name = e_2._common_path r_1.one_list.one_aug_list.ldata.extend([e_1, e_2]) r_1.one_list.one_aug_list.enabled = True self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1 = ysanity.Runner.OneList.OneAugList.Ldata() e_2 = ysanity.Runner.OneList.OneAugList.Ldata() e_1.number = 1 e_1.name = e_1._common_path.replace(':', '/') e_2.number = 2 e_2.name = e_2._common_path.replace(':', '/') r_1.one_list.one_aug_list.ldata.extend([e_1, e_2]) r_1.one_list.one_aug_list.enabled = True self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(r_2._has_data(), False)
def test_aug_onelist_pos(self): # CREATE r_1, r_2 = Runner(), Runner() e_1 = Runner.OneList.OneAugList.Ldata() e_2 = Runner.OneList.OneAugList.Ldata() e_1.number = 1 e_1.name = e_1._common_path e_2.number = 2 e_2.name = e_2._common_path r_1.one_list.one_aug_list.ldata.extend([e_1, e_2]) r_1.one_list.one_aug_list.enabled = True self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = Runner(), Runner() e_1 = Runner.OneList.OneAugList.Ldata() e_2 = Runner.OneList.OneAugList.Ldata() e_1.number = 1 e_1.name = e_1._common_path.replace(':', '/') e_2.number = 2 e_2.name = e_2._common_path.replace(':', '/') r_1.one_list.one_aug_list.ldata.extend([e_1, e_2]) r_1.one_list.one_aug_list.enabled = True self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(r_2._has_data(), False)
def test_onelsit_pos(self): # READ r_1, r_2 = Runner(), Runner() e_1, e_2 = Runner.OneList.Ldata(), Runner.OneList.Ldata() e_1.number = 1 e_1.name = 'runner:onelist:ldata[' + str(e_1.number) + ']:name' e_2.number = 2 e_2.name = 'runner:onelist:ldata[' + str(e_2.number) + ']:name' r_1.one_list.ldata.extend([e_1, e_2]) self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = Runner(), Runner() e_1, e_2 = Runner.OneList.Ldata(), Runner.OneList.Ldata() e_1.number = 1 e_1.name = 'runner:onelist:ldata[' + str(e_1.number) + ']:name' e_2.number = 2 e_2.name = 'runner:onelist:ldata[' + str(e_2.number) + ']:name' r_1.one_list.ldata.extend([e_1, e_2]) self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_identity_leaflist(self): runner = self._create_runner() runner.ytypes.built_in_t.identity_llist.append(ChildIdentityIdentity()) runner.ytypes.built_in_t.identity_llist.append( ChildChildIdentityIdentity()) self.crud.create(self.ncc, runner) # Read into Runner2 runner1 = Runner() runner1 = self.crud.read(self.ncc, runner1) # Compare runners result = is_equal(runner, runner1) self.assertEqual(result, True) #DEEPCOPY runner_copy = copy.deepcopy(runner) # result = is_equal(runner, runner_copy) # self.assertEqual(result, True) self.crud.delete(self.ncc, Runner()) self.crud.create(self.ncc, runner_copy) # Read into Runner2 runner1 = Runner() runner1 = self.crud.read(self.ncc, runner1) # Compare runners result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_copy_config(self): op = self.netconf_service.copy_config(self.ncc, Datastore.candidate, Datastore.running) self.assertEqual(None, op) runner = ysanity.Runner() runner.two.number = 2 runner.two.name = 'runner:two:name' get_filter = ysanity.Runner() op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, runner) self.assertEqual(None, op) op = self.netconf_service.copy_config(self.ncc, Datastore.running, Datastore.candidate) self.assertEqual(None, op) result = self.netconf_service.get_config(self.ncc, Datastore.running, get_filter) self.assertEqual(is_equal(result, runner), True) runner.two.name += 'modified' op = self.netconf_service.copy_config(self.ncc, Datastore.running, runner) self.assertEqual(None, op) result = self.netconf_service.get_config(self.ncc, Datastore.running, get_filter) self.assertEqual(is_equal(result, runner), True)
def test_twolist_pos(self): # READ r_1, r_2 = Runner(), Runner() e_1, e_2 = Runner.TwoList.Ldata(), Runner.TwoList.Ldata() e_11, e_12 = Runner.TwoList.Ldata.Subl1(), Runner.TwoList.Ldata.Subl1() e_1.number = 21 e_1.name = 'runner:twolist:ldata[' + str(e_1.number) + ']:name' e_11.number = 211 e_11.name = 'runner:twolist:ldata[' + str( e_1.number) + ']:subl1[' + str(e_11.number) + ']:name' e_12.number = 212 e_12.name = 'runner:twolist:ldata[' + str( e_1.number) + ']:subl1[' + str(e_12.number) + ']:name' e_1.subl1.extend([e_11, e_12]) e_21, e_22 = Runner.TwoList.Ldata.Subl1(), Runner.TwoList.Ldata.Subl1() e_2.number = 22 e_2.name = 'runner:twolist:ldata[' + str(e_2.number) + ']:name' e_21.number = 221 e_21.name = 'runner:twolist:ldata[' + str( e_2.number) + ']:subl1[' + str(e_21.number) + ']:name' e_22.number = 222 e_22.name = 'runner:twolist:ldata[' + str( e_2.number) + ']:subl1[' + str(e_22.number) + ']:name' e_2.subl1.extend([e_21, e_22]) r_1.two_list.ldata.extend([e_1, e_2]) self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = Runner(), Runner() e_1, e_2 = Runner.TwoList.Ldata(), Runner.TwoList.Ldata() e_11, e_12 = Runner.TwoList.Ldata.Subl1(), Runner.TwoList.Ldata.Subl1() e_1.number = 21 e_1.name = 'runner/twolist/ldata[' + str(e_1.number) + ']/name' e_11.number = 211 e_11.name = 'runner/twolist/ldata[' + str( e_1.number) + ']/subl1[' + str(e_11.number) + ']/name' e_12.number = 212 e_12.name = 'runner/twolist/ldata[' + str( e_1.number) + ']/subl1[' + str(e_12.number) + ']/name' e_1.subl1.extend([e_11, e_12]) e_21, e_22 = Runner.TwoList.Ldata.Subl1(), Runner.TwoList.Ldata.Subl1() e_2.number = 22 e_2.name = 'runner/twolist/ldata[' + str(e_2.number) + ']/name' e_21.number = 221 e_21.name = 'runner/twolist/ldata[' + str( e_2.number) + ']/subl1[' + str(e_21.number) + ']/name' e_22.number = 222 e_22.name = 'runner/twolist/ldata[' + str( e_2.number) + ']/subl1[' + str(e_22.number) + ']/name' e_2.subl1.extend([e_21, e_22]) r_1.two_list.ldata.extend([e_1, e_2]) self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_onelsit_pos(self): # READ r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1, e_2 = ysanity.Runner.OneList.Ldata(), ysanity.Runner.OneList.Ldata() e_1.number = 1 e_1.name = 'runner:onelist:ldata['+str(e_1.number)+']:name' e_2.number = 2 e_2.name = 'runner:onelist:ldata['+str(e_2.number)+']:name' r_1.one_list.ldata.extend([e_1, e_2]) self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1, e_2 = ysanity.Runner.OneList.Ldata(), ysanity.Runner.OneList.Ldata() e_1.number = 1 e_1.name = 'runner:onelist:ldata['+str(e_1.number)+']:name' e_2.number = 2 e_2.name = 'runner:onelist:ldata['+str(e_2.number)+']:name' r_1.one_list.ldata.extend([e_1, e_2]) self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_twolist_pos(self): # READ r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1, e_2 = ysanity.Runner.TwoList.Ldata(), ysanity.Runner.TwoList.Ldata() e_11, e_12 = ysanity.Runner.TwoList.Ldata.Subl1(), ysanity.Runner.TwoList.Ldata.Subl1() e_1.number = 21 e_1.name = 'runner:twolist:ldata['+str(e_1.number)+']:name' e_11.number = 211 e_11.name = 'runner:twolist:ldata['+str(e_1.number)+']:subl1['+str(e_11.number)+']:name' e_12.number = 212 e_12.name = 'runner:twolist:ldata['+str(e_1.number)+']:subl1['+str(e_12.number)+']:name' e_1.subl1.extend([e_11, e_12]) e_21, e_22 = ysanity.Runner.TwoList.Ldata.Subl1(), ysanity.Runner.TwoList.Ldata.Subl1() e_2.number = 22 e_2.name = 'runner:twolist:ldata['+str(e_2.number)+']:name' e_21.number = 221 e_21.name = 'runner:twolist:ldata['+str(e_2.number)+']:subl1['+str(e_21.number)+']:name' e_22.number = 222 e_22.name = 'runner:twolist:ldata['+str(e_2.number)+']:subl1['+str(e_22.number)+']:name' e_2.subl1.extend([e_21, e_22]) r_1.two_list.ldata.extend([e_1, e_2]) self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() e_1, e_2 = ysanity.Runner.TwoList.Ldata(), ysanity.Runner.TwoList.Ldata() e_11, e_12 = ysanity.Runner.TwoList.Ldata.Subl1(), ysanity.Runner.TwoList.Ldata.Subl1() e_1.number = 21 e_1.name = 'runner/twolist/ldata['+str(e_1.number)+']/name' e_11.number = 211 e_11.name = 'runner/twolist/ldata['+str(e_1.number)+']/subl1['+str(e_11.number)+']/name' e_12.number = 212 e_12.name = 'runner/twolist/ldata['+str(e_1.number)+']/subl1['+str(e_12.number)+']/name' e_1.subl1.extend([e_11, e_12]) e_21, e_22 = ysanity.Runner.TwoList.Ldata.Subl1(), ysanity.Runner.TwoList.Ldata.Subl1() e_2.number = 22 e_2.name = 'runner/twolist/ldata['+str(e_2.number)+']/name' e_21.number = 221 e_21.name = 'runner/twolist/ldata['+str(e_2.number)+']/subl1['+str(e_21.number)+']/name' e_22.number = 222 e_22.name = 'runner/twolist/ldata['+str(e_2.number)+']/subl1['+str(e_22.number)+']/name' e_2.subl1.extend([e_21, e_22]) r_1.two_list.ldata.extend([e_1, e_2]) self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_read_on_identity_ref(self): r_1 = ysanity.Runner.Ytypes.BuiltInT() r_1.identity_ref_value = ysanity.ChildIdentityIdentity() self.crud.create(self.ncc, r_1) r_2 = ysanity.Runner.Ytypes.BuiltInT() r_2.identity_ref_value = READ() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) r_2 = ysanity.Runner.Ytypes.BuiltInT() r_2.identity_ref_value = ysanity.ChildIdentityIdentity() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True)
def test_read_on_identity_ref(self): r_1 = Runner.Ytypes.BuiltInT() r_1.identity_ref_value = ChildIdentityIdentity() self.crud.create(self.ncc, r_1) r_2 = Runner.Ytypes.BuiltInT() r_2.identity_ref_value = READ() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) r_2 = Runner.Ytypes.BuiltInT() r_2.identity_ref_value = ChildIdentityIdentity() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True)
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.Ytypes.BuiltInT() r_2.llstring.extend(['1', '2', '3']) runner_read = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, runner_read), True) r_2 = ysanity.Runner.Ytypes.BuiltInT() # invalid input, user should use READ() # or the same data on device r_2.llstring.extend(['something else']) runner_read = self.crud.read(self.ncc, r_2) self.assertNotEqual(is_equal(r_1, runner_read), True)
def test_get_invalid(self): try: from ydk.services import Datastore runner = self._create_runner() get_filter = ysanity.Runner() op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, runner) self.assertIn('ok', op) op = self.netconf_service.discard_changes(self.ncc) self.assertIn('ok', op) op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, runner) self.assertIn('ok', op) op = self.netconf_service.commit(self.ncc) self.assertIn('ok', op) result = self.netconf_service.get(self.ncc, get_filter, with_defaults_option=1) self.assertEqual(is_equal(runner, result), True) except YPYServiceError as err: expected_msg = "optional arg 'with_defaults_option' must be of type ietf_netconf_with_defaults.WithDefaultsModeEnum" self.assertEqual(err.message, expected_msg) else: raise Exception('YPYServiceError not raised')
def test_read_on_leaflist(self): r_1 = Runner.Ytypes.BuiltInT() r_1.llstring.extend(['1', '2', '3']) self.crud.create(self.ncc, r_1) r_2 = Runner.Ytypes.BuiltInT() r_2.llstring.extend(['1', '2', '3']) runner_read = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, runner_read), True) r_2 = Runner.Ytypes.BuiltInT() # invalid input, user should use READ() # or the same data on device r_2.llstring.extend(['something else']) runner_read = self.crud.read(self.ncc, r_2) self.assertNotEqual(is_equal(r_1, runner_read), True)
def test_replace_on_list(self): one_list = Runner.OneList() ld1, ld2 = Runner.OneList.Ldata(), Runner.OneList.Ldata() ld1.number, ld2.number = 1, 2 one_list.ldata.extend([ld1, ld2]) self.crud.create(self.ncc, one_list) filter = Runner.OneList.Ldata() filter.number = 2 r = self.crud.read(self.ncc, filter) self.assertTrue(is_equal(r, ld2)) # Merge and Verify one_merge = Runner.OneList() ld3 = Runner.OneList.Ldata() ld3.number = 3 one_merge.ldata.append(ld3) one_merge.yfilter = MERGE() self.crud.update(self.ncc, one_merge) r = self.crud.read(self.ncc, Runner.OneList()) self.assertEqual(len(r.ldata), 3) # Replace and Verify replace = Runner.OneList() replace.ldata.append(ld3) replace.yfilter = REPLACE() self.crud.update(self.ncc, replace) r = self.crud.read(self.ncc, Runner.OneList()) self.assertEqual(len(r.ldata), 1)
def test_delete_operation_on_list_slice(self): runner_create = ysanity.Runner() runner_create.one.name = 'one' foo = ysanity.Runner.OneList.Ldata() bar = ysanity.Runner.OneList.Ldata() baz = ysanity.Runner.OneList.Ldata() foo.number = 1 foo.name = 'foo' bar.number = 2 bar.name = 'bar' baz.number = 3 baz.name = 'baz' runner_create.one_list.ldata.extend([foo, bar, baz]) self.crud.create(self.ncc, runner_create) runner_read = self.read_from_empty_filter() elements_to_delete = runner_read.one_list.ldata[:1] self.crud.delete(self.ncc, elements_to_delete) # read after a crud delete operation runner_read = self.read_from_empty_filter() runner_left = runner_create # manually delete entire list del runner_left.one_list.ldata[:1] self.assertEqual(is_equal(runner_read, runner_left), True)
def test_CASE8(self): """Assign presence class F to `a.b.f`.""" a = ysanity.A() a.b.f = a.b.F() a.b.f.f1 = 'f' a_read = self.crud.read(self.ncc, a) preconfig_a = a self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_CASE6(self): """Assign `a.b.c` serves as an empty presence container.""" a = ysanity.A() a.b.c = a.b.C() a_read = self.crud.read(self.ncc, a) preconfig_a = ysanity.A() preconfig_a.b.c = preconfig_a.b.C() self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_aug_base_2(self): cpython = ietf_aug_base_2.Cpython() cpython.tools.aug_four = 'aug four' self.crud.create(self.ncc, cpython) cpython_read = self.crud.read(self.ncc, ietf_aug_base_2.Cpython()) self.assertEqual(is_equal(cpython, cpython_read), True)
def test_encode_decode_dict(self): r_1 = self._get_runner_entity() r_entity = {'ydktest-sanity': r_1} payload = self.codec.encode(self.provider, r_entity) entity = self.codec.decode(self.provider, payload) for module in entity: self.assertEqual(is_equal(r_entity[module], entity[module]), True) self.assertEqual(payload, self.codec.encode(self.provider, entity))
def test_CASE3(self): """Assign a READ object to `a.a1` should only return data on this leaf.""" a = ysanity.A() a.a1 = READ() a_read = self.crud.read(self.ncc, a) preconfig_a = ysanity.A() preconfig_a.a1 = "some value" self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_encode_decode_dict(self): r_1 = self._get_runner_entity() r_entity = {'ydktest-sanity':r_1} payload = self.codec.encode(self.provider, r_entity) entity = self.codec.decode(self.provider, payload) for module in entity: self.assertEqual(is_equal(r_entity[module], entity[module]), True) self.assertEqual(payload, self.codec.encode(self.provider, entity))
def test_read_oc_patttern(self): obj_A = oc_pattern.OcA() obj_A.a = 'hello' obj_A.b.b = obj_A.a # 'world' --> YPYServiceProviderError: illegal reference self.crud.create(self.ncc, obj_A) obj_A_read = self.crud.read(self.ncc, oc_pattern.OcA(), True) self.assertEqual(is_equal(obj_A, obj_A_read), True)
def test_CASE2(self): """ According to https://tools.ietf.org/html/rfc6241#section-6.2.5, `a.a1` is a content match node. Uses crud read on `a` returns all data. """ a = ysanity.A() a.a1 = "some value" a_read = self.crud.read(self.ncc, a) preconfig_a = self.getInitEntity() self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_edit_commit_get(self): runner = ysanity.Runner() runner.one.number = 1 runner.one.name = 'runner:one:name' get_filter = ysanity.Runner() op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, runner) self.assertIn('ok', op) result = self.netconf_service.get_config(self.ncc, Datastore.candidate, get_filter) self.assertEqual(is_equal(runner, result), True) op = self.netconf_service.commit(self.ncc) self.assertIn('ok', op) result = self.netconf_service.get(self.ncc, get_filter) self.assertEqual(is_equal(runner, result), True)
def test_one_level_pos(self): # READ r_1, r_2 = Runner(), Runner() r_1.one.number, r_1.one.name = 1, 'runner:one:name' self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = Runner(), Runner() r_1.one.number, r_1.one.name = 10, 'runner/one/name' self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_read_on_ref_class(self): r_1 = ysanity.Runner() r_1.one.number, r_1.one.name = 1, 'runner:one:name' self.crud.create(self.ncc, r_1) r_2 = ysanity.Runner() r_2.one = READ() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True)
def test_one_level_pos(self): # READ r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.one.number, r_1.one.name = 1, 'runner:one:name' self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.one.number, r_1.one.name = 10, 'runner/one/name' self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_read_on_ref_class(self): r_1 = Runner() r_1.one.number, r_1.one.name = 1, 'runner:one:name' self.crud.create(self.ncc, r_1) r_2 = Runner() r_2.one = READ() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True)
def test_uint32(self): runner = self._create_runner() runner.ytypes.built_in_t.u_number32 = 18446744073709551615 self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_decimal64(self): runner = self._create_runner() runner.ytypes.built_in_t.deci64 = 'string' self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_leafref(self): runner = self._create_runner() runner.ytypes.built_in_t.leaf_ref = Decimal64('3.14') self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_int32(self): runner = self._create_runner() runner.ytypes.built_in_t.number32 = -9223372036854775808 self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_string(self): runner = self._create_runner() runner.ytypes.built_in_t.name = Empty() self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_two_level_pos(self): # READ r_1 = Runner() r_1.two.number, r_1.two.name, r_1.two.sub1.number = 2, 'runner:two:name', 21 self.crud.create(self.ncc, r_1) r_2 = Runner() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = Runner(), Runner() r_1.two.number, r_1.two.name, r_1.two.sub1.number = 20, 'runner/two/name', 210 self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_parent_empty(self): runner = ysanity.Runner() runner.ytypes.enabled = Empty() runner.ytypes.built_in_t.emptee = Empty() self.crud.create(self.ncc, runner) runner_read = self.crud.read(self.ncc, ysanity.Runner()) self.assertEqual(is_equal(runner_read, runner), True)
def test_int16(self): runner = self._create_runner() runner.ytypes.built_in_t.number16 = 20000 self.crud.create(self.ncc, runner) runner1 = ysanity.Runner() runner1 = self.crud.read(self.ncc, runner1) result = is_equal(runner, runner1) self.assertEqual(result, True)
def test_CASE5(self): """Now `a.b.d.e` serves as a content match node.""" a = ysanity.A() e = a.b.d.e e.e1 = "some value e1" a_read = self.crud.read(self.ncc, a) preconfig_a = ysanity.A() preconfig_a.b.d.e.e1 = "some value e1" preconfig_a.b.d.e.e2 = "value of e2" self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_parent_empty(self): runner = Runner() runner.ytypes.enabled = Empty() runner.ytypes.built_in_t.emptee = Empty() self.crud.create(self.ncc, runner) runner_read = self.crud.read(self.ncc, Runner()) self.assertEqual(is_equal(runner_read, runner), True)
def test_encode_1(self): r_1 = self._get_runner_entity() payload = self.codec.encode(self.provider, r_1) self.assertEqual(self._runner_payload, payload) # DEEPCOPY r_1_copy = copy.deepcopy(r_1) self.assertEqual(is_equal(r_1_copy, r_1), True) payload_copy = self.codec.encode(self.provider, r_1) self.assertEqual(self._runner_payload, payload_copy)
def test_two_level_pos(self): # READ r_1 = ysanity.Runner() r_1.two.number, r_1.two.name, r_1.two.sub1.number = 2, 'runner:two:name', 21 self.crud.create(self.ncc, r_1) r_2 = ysanity.Runner() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.two.number, r_1.two.name, r_1.two.sub1.number = 20, 'runner/two/name', 210 self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_CASE4(self): """Now `a.b.b1` serves as a content match node.""" a = ysanity.A() a.b.b1 = "some value" a_read = self.crud.read(self.ncc, a) preconfig_a = self.getInitEntity() del preconfig_a.lst[:] preconfig_a.a1 = None preconfig_a.a2 = None preconfig_a.a3 = None self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_read_only_config(self): r_1 = ysanity.Runner() r_1.one.number, r_1.one.name = 1, 'runner:one:name' self.crud.create(self.ncc, r_1) r_2, r_3 = ysanity.Runner(), ysanity.Runner() r_2.one.number, r_3.one.number = READ(), READ() r_2 = self.crud.read(self.ncc, r_2, only_config=True) r_3 = self.crud.read(self.ncc, r_3) # ysanity only have config data, ok to compare self.assertEqual(is_equal(r_2, r_3), True)
def test_CASE7(self): """`item1.number` and `item2.number` serves as content match nodes.""" a = ysanity.A() item1, item2 = a.Lst(), a.Lst() item1.number, item2.number = 1, 2 a.lst.extend([item1, item2]) a_read = self.crud.read(self.ncc, a) preconfig_a = ysanity.A() item1.value, item2.value = "one", "two" preconfig_a.lst.extend([item1, item2]) self.assertEqual(is_equal(a_read, preconfig_a), True)
def test_aug_one_pos(self): # CREATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.one.one_aug.number = 1 r_1.one.one_aug.name =r_1.one.one_aug._common_path self.crud.create(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.one.one_aug.number = 10 r_1.one.one_aug.name =r_1.one.one_aug._common_path.replace(':', '/') self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_leafref_simple_pos(self): # change ref and original data together # READ r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.ytypes.built_in_t.number8 = 100 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) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.ytypes.built_in_t.number8 = 110 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) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)
def test_three_level_pos(self): # READ r_1 = ysanity.Runner() r_1.three.number, r_1.three.name, \ r_1.three.sub1.number, r_1.three.sub1.sub2.number = 3, 'runner:three:name', 31, 311 self.crud.create(self.ncc, r_1) r_2 = ysanity.Runner() r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # UPDATE r_1, r_2 = ysanity.Runner(), ysanity.Runner() r_1.three.number, r_1.three.name, \ r_1.three.sub1.number, r_1.three.sub1.sub2.number = 30, 'runner/three/name', 310, 3110 self.crud.update(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_2) self.assertEqual(is_equal(r_1, r_2), True) # DELETE r_1 = ysanity.Runner() self.crud.delete(self.ncc, r_1) r_2 = self.crud.read(self.ncc, r_1) self.assertEqual(r_2._has_data(), False)