Пример #1
0
    def test_delete(self):
        runner = ysanity.Runner()
        e_1 = ysanity.Runner.OneList.Ldata()
        e_2 = ysanity.Runner.OneList.Ldata()
        e_1.number = 1
        e_1.name = 'foo'
        e_1.yfilter = YFilter.create
        e_2.number = 2
        e_2.name = 'bar'
        e_2.yfilter = YFilter.create
        runner.one_list.ldata.extend([e_1, e_2])
        self.crud.update(self.ncc, runner)

        # DELETE
        runner = ysanity.Runner()
        e_1 = ysanity.Runner.OneList.Ldata()
        e_1.number = 1
        e_1.yfilter = YFilter.delete
        runner.one_list.ldata.append(e_1)
        self.crud.update(self.ncc, runner)

        # DELETE AGAIN WITH ERROR
        self.crud.update(self.ncc, runner)
Пример #2
0
    def test_delete_on_leaflist(self):
        runner_create = ysanity.Runner()
        runner_create.one.name = 'one'
        runner_create.ytypes.built_in_t.llstring.extend(
            [str(i) for i in range(5)])

        self.crud.create(self.ncc, runner_create)

        self.crud.delete(self.ncc, runner_create.ytypes.built_in_t.llstring[3])

        runner_read = self.read_from_empty_filter()
        runner_left = runner_create
        del runner_left.ytypes.built_in_t.llstring[3]
        self.assertEqual(is_equal(runner_read, runner_create), True)
Пример #3
0
    def test_get_config_invalid_1(self):
        try:
            runner = self._create_runner()
            get_filter = ysanity.Runner()

            self.netconf_service.edit_config(self.ncc, Datastore.candidate,
                                             runner)
            result = self.netconf_service.get_config(self.ncc, None,
                                                     get_filter)
        except YServiceError as err:
            expected_msg = 'provider and source cannot be None'
            self.assertEqual(err.message, expected_msg)
        else:
            raise Exception('YServiceError not raised')
Пример #4
0
    def test_read_on_ref_enum_class(self):
        from ydk.models.ydktest.ydktest_sanity import YdkEnumTest
        r_1 = ysanity.Runner.Ytypes.BuiltInT()
        r_1.enum_value = YdkEnumTest.local
        self.crud.create(self.ncc, r_1)

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

        r_2 = ysanity.Runner().Ytypes.BuiltInT()
        r_2.enum_value = YdkEnumTest.local
        runner_read = self.crud.read(self.ncc, r_2)
        self.assertEqual(r_1.enum_value, runner_read.enum_value)

        # no such value, nothing returned
        r_2 = ysanity.Runner.Ytypes.BuiltInT()
        r_2.enum_value = YdkEnumTest.remote
        runner_read = self.crud.read(self.ncc, r_2)
        self.assertIsNone(runner_read)
Пример #5
0
    def test_entity_to_dict_aug_onelist(self):
        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.name"
        e_2.number = 2
        e_2.name = "e_2.name"
        runner.one_list.one_aug_list.ldata.extend([e_1, e_2])
        runner.one_list.one_aug_list.enabled = True

        ent_dict = entity_to_dict(runner)
        self.assertEqual(len(ent_dict), 5)
        print_dictionary('', ent_dict, 60)
Пример #6
0
    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.name"
        e_2.number = 2
        e_2.name = "e_2.name"
        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(r_1, r_2)

        # 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.name".replace('.', ':')
        e_2.number = 2
        e_2.name = "e_2.name".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(r_1, r_2)

        # 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, None)
Пример #7
0
    def test_ylist_runner_no_key_list(self):
        runner = ysanity.Runner()
        t1 = ysanity.Runner().NoKeyList()
        t1.test = 't1'
        t2 = ysanity.Runner().NoKeyList()
        t2.test = 't2'
        t3 = ysanity.Runner().NoKeyList()
        t3.test = 't3'
        runner.no_key_list.extend([t1, t2, t3])

        count = ''
        for elem in runner.no_key_list:
            count += elem.test
        self.assertEqual(count, 't1t2t3')

        from ydk.providers import CodecServiceProvider
        from ydk.services  import CodecService
        provider = CodecServiceProvider(type='xml')
        codec = CodecService()

        payload = codec.encode(provider, runner)
        expected = '''<runner xmlns="http://cisco.com/ns/yang/ydktest-sanity">
  <no-key-list>
    <test>t1</test>
  </no-key-list>
  <no-key-list>
    <test>t2</test>
  </no-key-list>
  <no-key-list>
    <test>t3</test>
  </no-key-list>
</runner>
'''
        self.assertEqual(payload, expected)

        runner_decode = codec.decode(provider, payload)
        self.assertEqual(runner_decode, runner)
Пример #8
0
    def test_onelist_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.append(e_1)
        r_1.one_list.ldata.append(e_2)

        self.crud.create(self.ncc, r_1)
        r_2 = self.crud.read(self.ncc, r_2)

        self.assertEqual(r_1, r_2)

        # 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(r_1, r_2)

        # 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, None)
    def test_execute_rpc_invalid_1(self):
        runner = ysanity.Runner()
        runner.one.number = 1
        runner.one.name = 'runner:one:name'

        edit_rpc = ietf_netconf.EditConfigRpc()
        edit_rpc.input.target.candidate = Empty()
        edit_rpc.input.config = runner
        try:
            op = self.executor.execute_rpc(None, edit_rpc)
        except YPYServiceError as err:
            expected_msg = "'provider' and 'rpc' cannot be None"
            self.assertEqual(err.message, expected_msg)
        else:
            raise Exception('YPYServiceError not raised')
Пример #10
0
    def test_get_config_invalid_1(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)
            result = self.netconf_service.get_config(self.ncc, None,
                                                     get_filter)
        except YPYServiceError as err:
            expected_msg = "'source' cannot be None"
            self.assertEqual(err.message, expected_msg)
        else:
            raise Exception('YPYServiceError not raised')
Пример #11
0
    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(r_1, r_2)

        # 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(r_1, r_2)

        # 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, None)
Пример #12
0
    def test_boolean(self):
        runner = self._create_runner()
        runner.ytypes.built_in_t.bool_value = True
        self.crud.create(self.ncc, runner)

        # Read into Runner2
        runner1 = ysanity.Runner()
        runner1 = self.crud.read(self.ncc, runner1)

        # Compare runners
        result = is_equal(runner, runner1)
        self.assertEqual(result, True)

        runner = self._create_runner()
        runner.ytypes.built_in_t.bool_value = False
        self.crud.update(self.ncc, runner)

        # Read into Runner2
        runner1 = ysanity.Runner()
        runner1 = self.crud.read(self.ncc, runner1)

        # Compare runners
        result = is_equal(runner, runner1)
        self.assertEqual(result, True)
Пример #13
0
    def test_execute_rpc_invalid_1(self):
        runner = ysanity.Runner()
        runner.ydktest_sanity_one.number = 1
        runner.ydktest_sanity_one.name = 'runner:one:name'

        edit_rpc = ietf_netconf.EditConfig()
        edit_rpc.input.target.candidate = Empty()
        runner_xml = self.codec.encode(self.codec_provider, runner)
        edit_rpc.input.config = runner_xml
        try:
            op = self.executor.execute_rpc(None, edit_rpc)
        except YServiceError as err:
            expected_msg = "provider and entity cannot be None"
            self.assertEqual(err.message, expected_msg)
        else:
            raise Exception('YServiceError not raised')
Пример #14
0
    def test_read_on_ref_list(self):
        r_1 = ysanity.Runner.OneList()
        l_1, l_2 = ysanity.Runner.OneList.Ldata(
        ), ysanity.Runner.OneList.Ldata()
        l_1.number, l_2.number = 1, 2
        r_1.ldata.extend([l_1, l_2])
        self.crud.create(self.ncc, r_1)

        r_2 = ysanity.Runner()
        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)
Пример #15
0
    def test_get_config_invalid_2(self):
        try:
            runner = self._create_runner()
            get_filter = ysanity.Runner()

            self.netconf_service.edit_config(self.ncc, Datastore.candidate,
                                             runner)
            result = self.netconf_service.get_config(self.ncc,
                                                     Datastore.candidate,
                                                     get_filter,
                                                     with_defaults_option=1)
        except TypeError as err:
            expected_msg = "get_config() got an unexpected keyword argument 'with_defaults_option'"
            self.assertEqual(err.args[0], expected_msg)
        else:
            raise Exception('TypeError not raised')
Пример #16
0
    def test_bits_leaflist(self):
        # User needs to append Bits instance manually to bits leaflist.
        runner = self._create_runner()
        bits_0 = runner.ytypes.built_in_t.BitsLlist_Bits()
        bits_1 = runner.ytypes.built_in_t.BitsLlist_Bits()
        bits_0['disable-nagle'] = True
        bits_1['auto-sense-speed'] = True
        runner.ytypes.built_in_t.bits_llist.extend([bits_0, bits_1])
        self.crud.create(self.ncc, runner)

        # Read into Runner1
        runner1 = ysanity.Runner()
        runner1 = self.crud.read(self.ncc, runner1)

        # Compare runners
        result = is_equal(runner, runner1)
        self.assertEqual(result, True)
Пример #17
0
    def test_edit_commit_get(self):
        one = ysanity.Runner.One()
        one.number = 1
        one.name = 'runner-one-name'

        op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, one)
        self.assertEqual(True, op)

        get_filter = ysanity.Runner().One()
        one_result = self.netconf_service.get_config(self.ncc, Datastore.candidate, get_filter)
        self.assertEqual(one, one_result)

        op = self.netconf_service.commit(self.ncc)
        self.assertEqual(True, op)

        one_result = self.netconf_service.get(self.ncc, get_filter)
        self.assertEqual(one, one_result)
Пример #18
0
    def test_boolean(self):
        runner = self._create_runner()
        runner.ytypes.built_in_t.bool_value = YdkEnumTestEnum.NONE
        self.crud.create(self.ncc, runner)

        # Read into Runner2
        runner1 = ysanity.Runner()
        runner1 = self.crud.read(self.ncc, runner1)

        # Compare runners
        result = is_equal(runner, runner1)
        self.assertEqual(result, True)

        runner = self._create_runner()
        runner.ytypes.built_in_t.bool_value = False
        self.assertRaises(YPYDataValidationError, self.crud.update, self.ncc,
                          runner)
Пример #19
0
    def test_get_config_invalid_2(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)
            result = self.netconf_service.get_config(self.ncc,
                                                     Datastore.candidate,
                                                     get_filter,
                                                     with_defaults_option=1)
        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')
Пример #20
0
    def test_ylist_runner_two_key_list(self):
        runner = ysanity.Runner()
        l_1, l_2 = ysanity.Runner.TwoKeyList(), ysanity.Runner.TwoKeyList()
        l_1.first, l_2.first = 'f1', 'f2'
        l_1.second, l_2.second = 11, 22
        runner.two_key_list.extend([l_1, l_2])

        ldata_list = runner.two_key_list
        ldata_keys = ldata_list.keys()
        self.assertEqual(ldata_keys, [('f1', 11), ('f2', 22)])

        for lkey in ldata_keys:
            ldata = ldata_list[lkey]
            self.assertNotEqual(ldata, None)

        self.assertEqual(ldata_list[('f1', 11)], l_1)
        self.assertEqual(ldata_list[('f2', 22)], l_2)
Пример #21
0
 def setUp(self):
     # start a brand new session for every single test case
     # so test_close_session_rpc will not interfere with other test cases
     # self.ncc = NetconfServiceProvider('127.0.0.1', 'admin', 'admin', 12022)
     self.ncc = NetconfServiceProvider(
         self.hostname,
         self.username,
         self.password,
         self.port,
         self.protocol,
         self.on_demand,
         self.common_cache,
         self.timeout)
     from ydk.services import CRUDService
     crud = CRUDService()
     runner = ysanity.Runner()
     crud.delete(self.ncc, runner)
Пример #22
0
    def test_read_on_leaf(self):
        one = ysanity.Runner.One()
        one.number, one.name = 1, 'runner:one:name'
        self.crud.create(self.ncc, one)

        r = ysanity.Runner()
        one_filter = r.one
        one_filter.name = YFilter.read
        one_filter.number = YFilter.read
        one_read = self.crud.read(self.ncc, one_filter)
        self.assertIsNotNone(one_read)
        self.assertEqual(one, one_read)

        # no such value, will return empty data
        one_filter = ysanity.Runner.One()
        one_filter.number = 2
        one_read = self.crud.read(self.ncc, one_filter)
        self.assertIsNone(one_read)
Пример #23
0
    def test_filter_list(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        read_filter = Filter(runner, native)

        self.assertEqual(read_filter.keys(),
                         ['ydktest-sanity:runner', 'ydktest-sanity:native'])
        all_entities = read_filter.entities()
        self.assertEqual(format(all_entities[0]),
                         'ydk.models.ydktest.ydktest_sanity.Runner')
        self.assertEqual(format(all_entities[1]),
                         'ydk.models.ydktest.ydktest_sanity.Native')

        self.assertEqual(format(read_filter[runner]),
                         'ydk.models.ydktest.ydktest_sanity.Runner')
        self.assertEqual(format(read_filter[runner.path()]),
                         'ydk.models.ydktest.ydktest_sanity.Runner')
        read_filter.clear()
Пример #24
0
    def test_config_add_del(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        config = Config()
        config.append(runner)
        self.assertEqual(len(config), 1)
        self.assertEqual(format(config), "Entities in Config: ['ydk.models.ydktest.ydktest_sanity.Runner']")

        config.append(native)
        self.assertEqual(len(config), 2)
        self.assertEqual(config.has_key(runner.path()), True)
        self.assertEqual(format(config), "Entities in Config: ['ydk.models.ydktest.ydktest_sanity.Runner', 'ydk.models.ydktest.ydktest_sanity.Native']")

        del config[native.path()]
        self.assertEqual(len(config), 1)
        self.assertEqual(config.has_key(native.path()), False)

        del config[runner]
        self.assertEqual(len(config), 0)
Пример #25
0
    def test_init_delete(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        anydata = Config(runner)
        deleted = anydata.pop(0)
        self.assertEqual(deleted.__class__.__name__, "Runner")

        anydata = Config()
        anydata.append([runner, native])

        deleted = anydata.pop('ydktest-sanity:native')
        self.assertEqual(len(anydata), 1)
        self.assertEqual(deleted.__class__.__name__, "Native")

        deleted = anydata.pop('ydktest-sanity:native')
        self.assertEqual(deleted, None)

        deleted = anydata.pop(runner)
        self.assertEqual(deleted.__class__.__name__, "Runner")
Пример #26
0
 def _get_runner_entity(self):
     r_1 = 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])
     return r_1
    def test_crud_update_invalid_1(self):
        try:
            runner = self._create_runner()
            runner.ytypes.built_in_t.bool_value = True
            self.crud.create(self.ncc, runner)

            # Read into Runner2
            runner1 = ysanity.Runner()
            runner1 = self.crud.read(self.ncc, runner1)

            # Compare runners
            result = is_equal(runner, runner1)
            self.assertEqual(result, True)

            runner = self._create_runner()
            runner.ytypes.built_in_t.bool_value = False
            self.crud.update(None, runner)
        except YPYServiceError as err:
            expected_msg = "'provider' and 'entity' cannot be None"
            self.assertEqual(err.message, expected_msg)
        else:
            raise Exception('YPYServiceError not Raised')
Пример #28
0
    def test_execute_get_config_rpc(self):
        get_config_rpc = ietf_netconf.GetConfigRpc()
        get_config_rpc.input.source.candidate = Empty()
        initial_candidate_data = self.executor.execute_rpc(
            self.ncc, get_config_rpc)

        runner = ysanity.Runner()
        runner.two.number = 2
        runner.two.name = 'runner:two:name'

        edit_rpc = ietf_netconf.EditConfigRpc()
        edit_rpc.input.target.candidate = Empty()
        edit_rpc.input.config = runner
        op = self.executor.execute_rpc(self.ncc, edit_rpc)
        self.assertIn('ok', op)

        final_candidate_data = self.executor.execute_rpc(
            self.ncc, get_config_rpc)

        self.assertNotEqual(initial_candidate_data, final_candidate_data)
        self.assertNotIn(runner.two.name, initial_candidate_data)
        self.assertIn(runner.two.name, final_candidate_data)
Пример #29
0
    def test_passive_interface(self):
        ospf = ysanity.Runner.YdktestSanityOne.Ospf()
        ospf.id = 22
        ospf.passive_interface.interface = "xyz"
        test = ysanity.Runner.YdktestSanityOne.Ospf.Test()
        test.name = "abc"
        ospf.test.append(test)

        op = self.netconf_service.edit_config(self.ncc, Datastore.candidate,
                                              ospf)
        self.assertEqual(True, op)

        ospf_filter = ysanity.Runner().YdktestSanityOne().Ospf()
        ospf_filter.id = 22
        ospf_result = self.netconf_service.get_config(self.ncc,
                                                      Datastore.candidate,
                                                      ospf_filter)
        self.assertIsNotNone(ospf_result)
        self.assertEqual(ospf, ospf_result)

        op = self.netconf_service.discard_changes(self.ncc)
        self.assertEqual(True, op)
Пример #30
0
    def test_delete_on_list(self):
        runner_create = ysanity.Runner()
        runner_create.ydktest_sanity_one.name = 'one'
        foo = ysanity.Runner.OneList.Ldata()
        bar = ysanity.Runner.OneList.Ldata()
        foo.number = 1
        foo.name = 'foo'
        bar.number = 2
        bar.name = 'bar'
        runner_create.one_list.ldata.extend([foo, bar])
        self.crud.create(self.ncc, runner_create)

        runner_update = self.read_from_empty_filter()
        runner_update.one_list.ldata.yfilter = YFilter.delete
        self.crud.update(self.ncc, runner_update)

        runner_read = self.read_from_empty_filter()

        runner_compare = runner_create
        runner_compare.one_list.ldata.pop()
        runner_compare.one_list.ldata.pop()

        self.assertEqual(runner_compare, runner_read)