def test_test_conditions(self):
     installer_mock = Mock(spec=installer.Installer)
     test_conditions = fomod.Conditions()
     test_conditions["file"] = fomod.FileType.MISSING
     test_conditions["flag"] = "value"
     test_conditions[None] = "version"
     test_conditions[fomod.Conditions()] = None
     test_conditions.type = fomod.ConditionType.AND
     installer.Installer._test_conditions(installer_mock, test_conditions)
     installer_mock._test_file_condition.assert_called_once_with(
         "file", fomod.FileType.MISSING)
     installer_mock._test_flag_condition.assert_called_once_with(
         "flag", "value")
     installer_mock._test_version_condition.assert_called_once_with(
         "version")
     installer_mock._test_conditions.assert_called_once()
     installer_mock._raise_failed_conditions.assert_not_called()
     installer_mock.reset_mock()
     installer_mock._test_file_condition.side_effect = installer._FailedCondition
     installer.Installer._test_conditions(installer_mock, test_conditions)
     installer_mock._raise_failed_conditions.assert_called_once()
     installer_mock.reset_mock()
     test_conditions.type = fomod.ConditionType.OR
     installer.Installer._test_conditions(installer_mock, test_conditions)
     installer_mock._raise_failed_conditions.assert_not_called()
     installer_mock._test_flag_condition.side_effect = installer._FailedCondition
     installer_mock._test_version_condition.side_effect = installer._FailedCondition
     installer_mock._test_conditions.side_effect = installer._FailedCondition
     installer.Installer._test_conditions(installer_mock, test_conditions)
     installer_mock._raise_failed_conditions.assert_called_once()
 def test_files(self):
     installer_mock = Mock(spec=installer.Installer)
     installer_mock.path = None
     files1 = fomod.Files()
     file1 = fomod.File("file", attrib={"priority": "2"})
     file1.src = "source1"
     file1.dst = "dest1"
     files1._file_list = [file1]
     installer_mock.root = Mock(spec=fomod.Root)
     installer_mock.root.files = files1
     files2 = fomod.Files()
     file2 = fomod.File("file", attrib={"priority": "0"})
     file2.src = "source2"
     file2.dst = "dest1"
     file3 = fomod.File("file", attrib={"priority": "0"})
     file3.src = "source3"
     file3.dst = "dest2"
     files2._file_list = [file2, file3]
     option2 = fomod.Option()
     option2.files = files2
     installer_mock._previous_pages = OrderedDict([(None, [option2])])
     files3 = fomod.Files()
     file4 = fomod.File("file", attrib={"priority": "1"})
     file4.src = "source4"
     file4.dst = "dest3"
     files3._file_list = [file4]
     installer_mock.root.file_patterns = {fomod.Conditions(): files3}
     expected = {"source1": "dest1", "source3": "dest2", "source4": "dest3"}
     assert installer.Installer.files(installer_mock) == expected
Exemple #3
0
 def test_to_string(self):
     self.cond.type = fomod.ConditionType.OR
     self.cond[None] = "1.0"
     self.cond["boop"] = "beep"
     nest = fomod.Conditions()
     nest.type = fomod.ConditionType.AND
     nest["file"] = fomod.FileType.MISSING
     self.cond[nest] = None
     expected = textwrap.dedent("""\
             <dependencies operator="Or">
               <gameDependency version="1.0"/>
               <flagDependency flag="boop" value="beep"/>
               <dependencies operator="And">
                 <fileDependency file="file" state="Missing"/>
               </dependencies>
             </dependencies>""")
     assert self.cond.to_string() == expected
Exemple #4
0
    def test_to_string(self):
        self.type.default = fomod.OptionType.REQUIRED
        cond = fomod.Conditions()
        cond["flag"] = "value"
        self.type[cond] = fomod.OptionType.RECOMMENDED
        text = cond.to_string()
        expected = textwrap.dedent("""\
                <dependencyType>
                  <defaultType name="Required"/>
                  <patterns>
                    <pattern>
{}
                      <type name="Recommended"/>
                    </pattern>
                  </patterns>
                </dependencyType>""".format(
            textwrap.indent(text, "    " * 5 + "  ")))
        assert self.type.to_string() == expected
Exemple #5
0
    def test_to_string(self):
        cond = fomod.Conditions()
        cond["flag"] = "value"
        cond_text = cond.to_string()
        files = fomod.Files()
        files["src"] = "dst"
        files_text = files.to_string()
        self.set[cond] = files
        expected = textwrap.dedent("""\
                <conditionalFileInstalls>
                  <patterns>
                    <pattern>
{}
{}
                    </pattern>
                  </patterns>
                </conditionalFileInstalls>""".format(
            textwrap.indent(cond_text, "    " * 5 + "  "),
            textwrap.indent(files_text, "    " * 5 + "  "),
        ))
        assert self.set.to_string() == expected
Exemple #6
0
 def test_validate(self):
     expected = fomod.ValidationWarning(
         "Empty Conditions",
         "This element should have at least one condition present.",
         self.cond,
         critical=True,
     )
     assert expected in self.cond.validate()
     nest = fomod.Conditions()
     self.cond[nest] = None
     expected = fomod.ValidationWarning(
         "Empty Conditions",
         "This element should have at least one condition present.",
         nest,
         critical=True,
     )
     assert expected in self.cond.validate()
     self.cond[None] = ""
     expected = fomod.ValidationWarning(
         "Empty Version Dependency",
         "This version dependency is empty and may not work correctly.",
         self.cond,
     )
     assert expected in self.cond.validate()
     self.cond[""] = fomod.FileType.ACTIVE
     expected = fomod.ValidationWarning(
         "Empty File Dependency",
         "This file dependency depends on no file, may not work correctly.",
         self.cond,
     )
     assert expected in self.cond.validate()
     self.cond._tag = "moduleDependencies"
     self.cond["boop"] = "beep"
     expected = fomod.ValidationWarning(
         "Useless Flags",
         "Flag boop shouldn't be used here since it can't have been set.",
         self.cond,
     )
     assert expected in self.cond.validate()
def test_installeroption():
    test_option = fomod.Option()
    test_option.name = "name"
    test_option.description = "description"
    test_option.image = "image"
    test_option.type = fomod.OptionType.REQUIRED
    inst_option = installer.InstallerOption(None, test_option)
    assert inst_option._object is test_option
    assert inst_option._installer is None
    assert inst_option.name == "name"
    assert inst_option.description == "description"
    assert inst_option.image == "image"
    assert inst_option.type is fomod.OptionType.REQUIRED
    test_option.type = fomod.Type()
    test_option.type.default = fomod.OptionType.NOTUSABLE
    installer_mock = Mock(spec=installer.Installer)
    inst_option = installer.InstallerOption(installer_mock, test_option)
    assert inst_option._installer is installer_mock
    assert inst_option.type is fomod.OptionType.NOTUSABLE
    test_option.type[fomod.Conditions()] = fomod.OptionType.COULDBEUSABLE
    inst_option = installer.InstallerOption(installer_mock, test_option)
    assert inst_option.type is fomod.OptionType.COULDBEUSABLE
Exemple #8
0
 def test_conditions(self):
     test = fomod.Conditions()
     self.root.conditions = test
     assert self.root.conditions is test
     assert self.root._conditions is test
     assert test._tag == "moduleDependencies"
Exemple #9
0
 def test_conditions(self):
     test = fomod.Conditions()
     self.page.conditions = test
     assert self.page.conditions is test
     assert self.page._conditions is test
Exemple #10
0
 def setup_method(self):
     self.cond = fomod.Conditions()