Example #1
0
    def test_trees_merge_two_levels(self):
        data = RPD_DB()
        c = self._create_filled_cfg()
        data.set_val(['cfg'], c)

        c2 = cfg_pb2.config()
        d1 = c2.DsOfdmProfile.add()
        d1.ProfileId = 1
        # Add another subcarrier under existing profileId
        d11 = d1.DsOfdmSubcarrierModulation.add()
        d11.StartSubcarrierId = 12
        d11.EndSubcarrierId = 12
        d11.Modulation = 1
        # Change leaf which is not leaf
        d2 = c2.DsOfdmProfile.add()
        d2.ProfileId = 2
        d21 = d2.DsOfdmSubcarrierModulation.add()
        d21.StartSubcarrierId = 21
        d21.EndSubcarrierId = 21
        d21.Modulation = 3

        data.merge_from_tree(['cfg'], c2)
        value = data.get_val(['cfg', 'DsOfdmProfile'])
        self.assertEqual(len(value), 2)
        value = data.get_val(
            ['cfg', 'DsOfdmProfile', 1, 'DsOfdmSubcarrierModulation'])
        self.assertListEqual([x.StartSubcarrierId for x in value], [11, 12])
        value = data.get_val(
            ['cfg', 'DsOfdmProfile', 2, 'DsOfdmSubcarrierModulation'])
        # One from two subcarriers specified - check if second was not removed
        self.assertEqual(len(value), 2)
        self.assertListEqual([x.Modulation for x in value], [3, 3])
Example #2
0
    def test_trees_merge_to_empty(self):
        data = RPD_DB()
        data.data.Clear()
        c = self._create_filled_cfg()

        # Merge and check if DB content is same as inserted object
        data.merge_from_tree(['cfg'], c)
        str1 = data.data.cfg.SerializeToString()
        str2 = c.SerializeToString()
        self.assertEqual(str1, str2)
Example #3
0
    def test_trees_merge_no_conflicts(self):
        data = RPD_DB()
        data.data.Clear()
        c = self._create_filled_cfg()

        # Add one element, merge again and check if value was not overwritten
        data.data.cfg.RpdCapabilities.NumBdirPorts = 5
        data.merge_from_tree(['cfg'], c)
        str1 = data.data.cfg.SerializeToString()
        str2 = c.SerializeToString()
        self.assertNotEqual(str1, str2)
        self.assertEqual(
            data.get_val(['cfg', 'RpdCapabilities', 'NumBdirPorts']), 5)
        # Delete additional item, check if buffers are same now
        data.del_val(['cfg', 'RpdCapabilities', 'NumBdirPorts'])
        str1 = data.data.cfg.SerializeToString()
        self.assertEqual(str1, str2)
Example #4
0
    def test_trees_merge_repeated_no_conflict(self):
        data = RPD_DB()
        c = self._create_filled_cfg()
        data.set_val(['cfg'], c)

        # DB is prepared, create another copy with added element on level 1
        c2 = self._create_filled_cfg()
        d3 = c2.DsOfdmProfile.add()
        d3.ProfileId = 4
        d11 = d3.DsOfdmSubcarrierModulation.add()
        d11.StartSubcarrierId = 15
        d11.EndSubcarrierId = 15
        d11.Modulation = 6

        data.merge_from_tree(['cfg'], c2)

        value = data.get_val(['cfg', 'DsOfdmProfile'])
        self.assertEqual(len(value), 3)
        self.assertListEqual([x.ProfileId for x in value], [1, 2, 4])
Example #5
0
    def test_trees_merge_conflict(self):
        data = RPD_DB()

        caps = t_RpdCapabilities()
        caps.NumBdirPorts = 5
        caps.NumDsRfPorts = 6

        data.set_val(['cfg', 'RpdCapabilities'], caps)

        # Create second instance with conflict
        caps2 = t_RpdCapabilities()
        caps2.NumDsRfPorts = 7
        caps2.NumTenGeNsPorts = 8

        # Merge tree to DB
        data.merge_from_tree(['cfg', 'RpdCapabilities'], caps2)

        value = data.get_val(['cfg', 'RpdCapabilities'])
        self.assertEqual(value.NumBdirPorts, 5)
        self.assertEqual(value.NumDsRfPorts, 7)
        self.assertEqual(value.NumTenGeNsPorts, 8)
        self.assertEqual(len(value.ListFields()), 3)