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
def test_to_string(self): self.option.name = "boo" self.option.description = "bee" self.option.image = "path" self.option.type = fomod.OptionType.RECOMMENDED files = fomod.Files() files["src"] = "dst" files_text = files.to_string() self.option.files = files flags = fomod.Flags() flags["flag"] = "value" flags_text = flags.to_string() self.option.flags = flags expected = textwrap.dedent("""\ <plugin name="boo"> <description>bee</description> <image path="path"/> {} {} <typeDescriptor> <type name="Recommended"/> </typeDescriptor> </plugin>""".format( textwrap.indent(files_text, " " * 4 + " "), textwrap.indent(flags_text, " " * 4 + " "), )) assert self.option.to_string() == expected
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
def test_files(self): test = fomod.Files() self.root.files = test assert self.root.files is test assert self.root._files is test assert test._tag == "requiredInstallFiles"
def test_files(self): test = fomod.Files() self.option.files = test assert self.option.files is test assert self.option._files is test
def setup_method(self): self.files = fomod.Files()
def test_fileinfo_process_files(tmp_path): def fileinfo_list_contains(info_list, test_info): for fileinfo in info_list: if (test_info.source == fileinfo.source and test_info.destination == fileinfo.destination and test_info.priority == fileinfo.priority): return True return False test_files = fomod.Files() test_file = fomod.File("file") test_file.src = "file1" test_file.dst = None test_files._file_list.append(test_file) test_file = fomod.File("file") test_file.src = "file2" test_file.dst = "" test_files._file_list.append(test_file) test_file = fomod.File("file") test_file.src = "file3" test_file.dst = "dest1/" test_files._file_list.append(test_file) test_file = fomod.File("file", attrib={"priority": "1"}) test_file.src = "file4" test_file.dst = "dest2" test_files._file_list.append(test_file) test_file = fomod.File("file") test_file.src = "folder1" test_file.dst = None (tmp_path / "folder1").mkdir() (tmp_path / "folder1" / "file11").touch() (tmp_path / "folder1" / "folder11").mkdir() (tmp_path / "folder1" / "folder12").mkdir() (tmp_path / "folder1" / "folder12" / "file12").touch() test_files._file_list.append(test_file) test_file = fomod.File("file") test_file.src = "folder2" test_file.dst = "" (tmp_path / "folder2").mkdir() (tmp_path / "folder2" / "file21").touch() (tmp_path / "folder2" / "folder21").mkdir() (tmp_path / "folder2" / "folder22").mkdir() (tmp_path / "folder2" / "folder22" / "file22").touch() test_files._file_list.append(test_file) test_file = fomod.File("file") test_file.src = "folder3" test_file.dst = "dest3/" (tmp_path / "folder3").mkdir() (tmp_path / "folder3" / "file31").touch() (tmp_path / "folder3" / "folder31").mkdir() (tmp_path / "folder3" / "folder32").mkdir() (tmp_path / "folder3" / "folder32" / "file32").touch() test_files._file_list.append(test_file) test_file = fomod.File("file", attrib={"priority": "1"}) test_file.src = "folder4" test_file.dst = "dest4" (tmp_path / "folder4").mkdir() (tmp_path / "folder4" / "file41").touch() (tmp_path / "folder4" / "folder41").mkdir() (tmp_path / "folder4" / "folder42").mkdir() (tmp_path / "folder4" / "folder42" / "file42").touch() test_files._file_list.append(test_file) test_file = fomod.File("folder") test_file.src = "folder6" test_file.dst = None (tmp_path / "folder6").mkdir() (tmp_path / "folder6" / "file61").touch() (tmp_path / "folder6" / "folder61").mkdir() (tmp_path / "folder6" / "folder62").mkdir() (tmp_path / "folder6" / "folder62" / "file62").touch() test_files._file_list.append(test_file) test_file = fomod.File("folder") test_file.src = "folder7" test_file.dst = "" (tmp_path / "folder7").mkdir() (tmp_path / "folder7" / "file71").touch() (tmp_path / "folder7" / "folder71").mkdir() (tmp_path / "folder7" / "folder72").mkdir() (tmp_path / "folder7" / "folder72" / "file72").touch() test_files._file_list.append(test_file) test_file = fomod.File("folder") test_file.src = "folder8" test_file.dst = "dest5" (tmp_path / "folder8").mkdir() (tmp_path / "folder8" / "file81").touch() (tmp_path / "folder8" / "folder81").mkdir() (tmp_path / "folder8" / "folder82").mkdir() (tmp_path / "folder8" / "folder82" / "file82").touch() test_files._file_list.append(test_file) test_file = fomod.File("folder", attrib={"priority": "1"}) test_file.src = "folder9" test_file.dst = "dest6" (tmp_path / "folder9").mkdir() (tmp_path / "folder9" / "file91").touch() (tmp_path / "folder9" / "folder91").mkdir() (tmp_path / "folder9" / "folder92").mkdir() (tmp_path / "folder9" / "folder92" / "file92").touch() test_files._file_list.append(test_file) expected = [ installer.FileInfo("file1", "file1", 0), installer.FileInfo("file2", "file2", 0), installer.FileInfo("file3", str(Path("dest1", "file3")), 0), installer.FileInfo("file4", "dest2", 1), installer.FileInfo("folder1", "folder1", 0), installer.FileInfo("folder2", "folder2", 0), installer.FileInfo("folder3", str(Path("dest3", "folder3")), 0), installer.FileInfo("folder4", "dest4", 1), installer.FileInfo("folder6", "folder6", 0), installer.FileInfo("folder7", ".", 0), installer.FileInfo("folder8", "dest5", 0), installer.FileInfo("folder9", "dest6", 1), ] result = installer.FileInfo.process_files(test_files, None) assert len(result) == len(expected) for info in result: assert fileinfo_list_contains(expected, info) expected = [ installer.FileInfo("file1", "file1", 0), installer.FileInfo("file2", "file2", 0), installer.FileInfo("file3", str(Path("dest1", "file3")), 0), installer.FileInfo("file4", "dest2", 1), installer.FileInfo(str(Path("folder1", "file11")), str(Path("folder1", "file11")), 0), installer.FileInfo(str(Path("folder1", "folder11")), str(Path("folder1", "folder11")), 0), installer.FileInfo( str(Path("folder1", "folder12", "file12")), str(Path("folder1", "folder12", "file12")), 0, ), installer.FileInfo(str(Path("folder2", "file21")), str(Path("folder2", "file21")), 0), installer.FileInfo(str(Path("folder2", "folder21")), str(Path("folder2", "folder21")), 0), installer.FileInfo( str(Path("folder2", "folder22", "file22")), str(Path("folder2", "folder22", "file22")), 0, ), installer.FileInfo(str(Path("folder3", "file31")), str(Path("dest3", "folder3", "file31")), 0), installer.FileInfo( str(Path("folder3", "folder31")), str(Path("dest3", "folder3", "folder31")), 0, ), installer.FileInfo( str(Path("folder3", "folder32", "file32")), str(Path("dest3", "folder3", "folder32", "file32")), 0, ), installer.FileInfo(str(Path("folder4", "file41")), str(Path("dest4", "file41")), 1), installer.FileInfo(str(Path("folder4", "folder41")), str(Path("dest4", "folder41")), 1), installer.FileInfo( str(Path("folder4", "folder42", "file42")), str(Path("dest4", "folder42", "file42")), 1, ), installer.FileInfo(str(Path("folder6", "file61")), str(Path("folder6", "file61")), 0), installer.FileInfo(str(Path("folder6", "folder61")), str(Path("folder6", "folder61")), 0), installer.FileInfo( str(Path("folder6", "folder62", "file62")), str(Path("folder6", "folder62", "file62")), 0, ), installer.FileInfo(str(Path("folder7", "file71")), "file71", 0), installer.FileInfo(str(Path("folder7", "folder71")), "folder71", 0), installer.FileInfo( str(Path("folder7", "folder72", "file72")), str(Path("folder72", "file72")), 0, ), installer.FileInfo(str(Path("folder8", "file81")), str(Path("dest5", "file81")), 0), installer.FileInfo(str(Path("folder8", "folder81")), str(Path("dest5", "folder81")), 0), installer.FileInfo( str(Path("folder8", "folder82", "file82")), str(Path("dest5", "folder82", "file82")), 0, ), installer.FileInfo(str(Path("folder9", "file91")), str(Path("dest6", "file91")), 1), installer.FileInfo(str(Path("folder9", "folder91")), str(Path("dest6", "folder91")), 1), installer.FileInfo( str(Path("folder9", "folder92", "file92")), str(Path("dest6", "folder92", "file92")), 1, ), ] result = installer.FileInfo.process_files(test_files, tmp_path) assert len(result) == len(expected) for info in result: assert fileinfo_list_contains(expected, info)