Пример #1
0
    def load_variable(self, text, start_index):
        next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
            text, start_index=start_index)

        if next_symbol != "variable":
            print("ERROR")
            exit()

        variable_specifications = VariableSpecifications()
        for key, value in attributes.items():
            variable_specifications.add(key, value)

        variable = self.variable_repository.create(variable_specifications)

        while next_symbol != "/variable":
            next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
                text, start_index=pointer)
            if next_symbol == "default_value":
                next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
                    text, start_index=pointer)
                variable.set_value(next_symbol)
                next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
                    text, start_index=pointer)
            elif next_symbol.endswith("_value"):
                mode = next_symbol[:-6]
                next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
                    text, start_index=pointer)
                variable.set_value(next_symbol, mode=mode)
                next_symbol, attributes, pointer = self.xml_helper.pop_symbol(
                    text, start_index=pointer)

        return variable, pointer
Пример #2
0
    def testLoadsVariable(self):
        text = """<variable name="test_variable"><default_value>45</default_value></variable>"""
        self.setup_holder.variable_loader.load_variable(text, 0)

        spec = VariableSpecifications()
        spec.name = "test_variable"

        variables = self.setup_holder.variable_repository.get(spec)

        self.assertEqual(1, len(variables))
        self.assertEqual("test_variable", variables[0].name)
        self.assertEqual("45", variables[0].get_value())
Пример #3
0
    def testGetValueAllModes(self):
        specs = VariableSpecifications()
        specs.name = "testElement"

        element_1 = self.variable_repository.create(specs)
        element_1.set_value(45)

        element_retrieved = self.variable_repository.get(specs)[0]

        self.assertEqual("45", element_retrieved.get_value(mode=None))
        self.assertEqual("45", element_retrieved.get_value(mode="train"))
        self.assertEqual("45", element_retrieved.get_value(mode="validate"))
        self.assertEqual("45", element_retrieved.get_value(mode="test"))
Пример #4
0
    def testLoadsVariableWithValidValue(self):
        text = """<variable name="test_variable"><validate_value>86</validate_value></variable>"""
        self.setup_holder.variable_loader.load_variable(text, 0)

        spec = VariableSpecifications()
        spec.name = "test_variable"

        variables = self.setup_holder.variable_repository.get(spec)

        self.assertEqual(1, len(variables))
        self.assertEqual("test_variable", variables[0].name)
        self.assertIsNone(variables[0].get_value())
        self.assertIsNone(variables[0].get_value(mode="test"))
        self.assertEqual("86", variables[0].get_value(mode="validate"))
Пример #5
0
    def testGetByName(self):
        specs = VariableSpecifications()
        specs.name = "testElement"

        element_1 = self.variable_repository.create(specs)
        element_retrieved = self.variable_repository.get(specs)

        self.assertEqual(1, len(element_retrieved))
        self.assertEqual(element_1.identifier, element_retrieved[0].identifier)
        self.assertEqual(element_1, element_retrieved[0])

        specs.name = "falseTestName"

        element_retrieved = self.variable_repository.get(specs)
        self.assertEqual(0, len(element_retrieved))
Пример #6
0
    def testCreateAssignsUID(self):

        specs = VariableSpecifications()

        element_1 = self.variable_repository.create(specs)
        element_2 = self.variable_repository.create(specs)

        self.assertIsNotNone(element_1)
        self.assertIsNotNone(element_2)
        self.assertIsNotNone(element_1.identifier)
        self.assertIsNotNone(element_2.identifier)
        self.assertNotEqual(element_1.identifier, element_2.identifier)
Пример #7
0
    def testCreateAddsToRepository(self):

        specs = VariableSpecifications()

        self.assertEqual(0, self.variable_repository.count())

        element_1 = self.variable_repository.create(specs)

        self.assertEqual(1, self.variable_repository.count())

        element_2 = self.variable_repository.create(specs)

        self.assertEqual(2, self.variable_repository.count())
Пример #8
0
    def testConfigurationLoaderLoadsVariables(self):
        text = """<configuration>
        <variable name="test_variable"><default_value>45</default_value></variable>
        <variable name="test_variable_2"><default_value>16.2</default_value></variable>
        </configuration>"""

        self.setup_holder.configuration_loader.load_configuration(text, 0)

        spec = VariableSpecifications()

        variables = self.setup_holder.variable_repository.get(spec)

        self.assertEqual(2, len(variables))
        variable_names = [v.name for v in variables]

        self.assertIn("test_variable", variable_names)
        self.assertIn("test_variable_2", variable_names)
 def get_specifications(self):
     return VariableSpecifications()