def test_get_updated_data(self): with self.subTest(desc='empty with empty'): self.plugin._download_data = {} self.assertEqual({}, self.plugin.get_updated_data({})) with self.subTest(desc='filled with filled and the same'): self.plugin._download_data = self.eg_data self.assertEqual({}, self.plugin.get_updated_data(self.eg_data)) with self.subTest(desc='empty with filled'): self.plugin._download_data = self.eg_data self.assertEqual(self.eg_data, self.plugin.get_updated_data({})) with self.subTest(desc='filled with empty'): self.plugin._download_data = {} self.assertEqual({}, self.plugin.get_updated_data(self.eg_data)) with self.subTest(desc='filled with one item more'): old_data = {'/IceflowRE/Universal-Downloader/master/README.rst': LinkItem('One', datetime(2001, 1, 1, hour=1, minute=1, second=1))} result = {'/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('Two', datetime(2002, 2, 2, hour=2, minute=2, second=2))} self.plugin._download_data = self.eg_data self.assertEqual(result, self.plugin.get_updated_data(old_data)) with self.subTest(desc='one item more with filled'): new_data = {'/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('One', datetime(2001, 1, 1, hour=1, minute=1, second=1))} self.plugin._download_data = new_data self.assertEqual({}, self.plugin.get_updated_data(self.eg_data))
def test_update_download_links(self): result = {'/IceflowRE/Universal-Downloader/master/README.rst': LinkItem('README.rst', datetime(2000, 1, 1, hour=1, minute=1, second=1)), '/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('LICENSE', datetime(2002, 2, 2, hour=2, minute=2, second=2)) } self.plugin.update_download_links() self.assertEqual(result, self.plugin.download_data)
def setUp(self): manager.init(Path('./tmp'), Path('UniDown.log'), 'INFO') dynamic_data.DISABLE_TQDM = True self.plugin = Plugin() self.plugin.log.disabled = True self.eg_data = {'/IceflowRE/Universal-Downloader/master/README.rst': LinkItem('One', datetime(2001, 1, 1, hour=1, minute=1, second=1)), '/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('Two', datetime(2002, 2, 2, hour=2, minute=2, second=2))}
def test_init(self): with self.subTest(desc="name empty"): with self.assertRaises(ValueError): LinkItem("", datetime(1970, 1, 1)) with self.subTest(desc="name None"): with self.assertRaises(ValueError): LinkItem(None, datetime(1970, 1, 1)) with self.subTest(desc="time None"): with self.assertRaises(ValueError): LinkItem("blub", None)
def test_check_download(self): with self.subTest(desc="empty"): data = self.plugin.check_download({}, self.plugin._temp_path) self.assertEqual(({}, {}), data) with self.subTest(desc="one succeed, one lost"): create_test_file(self.plugin._temp_path.joinpath('One')) data = self.plugin.check_download(self.eg_data, self.plugin._temp_path) succeed = {'/IceflowRE/Universal-Downloader/master/README.rst': LinkItem('One', datetime(2001, 1, 1, hour=1, minute=1, second=1))} lost = {'/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('Two', datetime(2002, 2, 2, hour=2, minute=2, second=2))} self.assertEqual((succeed, lost), data)
def _create_download_links(self): return { '/IceflowRE/Universal-Downloader/master/README.rst': LinkItem('README.rst', datetime(2000, 1, 1, hour=1, minute=1, second=1)), '/IceflowRE/Universal-Downloader/master/no_file_here': LinkItem('LICENSE', datetime(2002, 2, 2, hour=2, minute=2, second=2)) }
def test_equality(self): with self.subTest(desc="different type"): self.assertFalse(self.item == "blub") self.assertTrue(self.item != "blub") with self.subTest(desc="equal"): item = LinkItem('blub', datetime(1996, 12, 4)) self.assertTrue(self.item == item) self.assertFalse(self.item != item) with self.subTest(desc="unequal"): item = LinkItem('whatever', datetime(1996, 12, 4)) self.assertFalse(self.item == item) self.assertTrue(self.item != item) item = LinkItem('blub', datetime(2000, 12, 4)) self.assertFalse(self.item == item) self.assertTrue(self.item != item)
def from_protobuf(cls, proto: SaveStateProto) -> 'SaveState': """ Constructor from protobuf. Can raise ValueErrors from called from_protobuf() parsers. :param proto: protobuf structure :type proto: ~unidown.plugin.protobuf.save_state_pb2.SaveStateProto :return: the SaveState :rtype: ~unidown.plugin.save_state.SaveState :raises ValueError: version of SaveState does not exist or is empty inside the protobuf :raises ~packaging.version.InvalidVersion: version is not PEP440 conform """ data_dict = {} for key, link_item in proto.data.items(): data_dict[key] = LinkItem.from_protobuf(link_item) if proto.version == "": raise ValueError("version of SaveState does not exist or is empty inside the protobuf.") try: version = Version(proto.version) except InvalidVersion: raise InvalidVersion('Plugin version is not PEP440 conform: {version}'.format(version=proto.version)) return cls(version, PluginInfo.from_protobuf(proto.plugin_info), Timestamp.ToDatetime(proto.last_update), data_dict)
def test_equality(self): with self.subTest(desc="different type"): self.assertFalse(self.save == "blub") self.assertTrue(self.save != "blub") with self.subTest(desc="equal"): save = SaveState(Version('1'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item': LinkItem('blub', datetime(1996, 12, 4))}) self.assertTrue(self.save == save) self.assertFalse(self.save != save) with self.subTest(desc="unequal"): save = SaveState(Version('2'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item': LinkItem('blub', datetime(1996, 12, 4))}) self.assertFalse(self.save == save) self.assertTrue(self.save != save) save = SaveState(Version('1'), PluginInfo('whatever', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item': LinkItem('blub', datetime(1996, 12, 4))}) self.assertFalse(self.save == save) self.assertTrue(self.save != save) save = SaveState(Version('1'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(2000, 12, 4), {'item': LinkItem('blub', datetime(1996, 12, 4))}) self.assertFalse(self.save == save) self.assertTrue(self.save != save) save = SaveState( Version('1'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item2': LinkItem('blub', datetime(1996, 12, 4))}) self.assertFalse(self.save == save) self.assertTrue(self.save != save) save = SaveState(Version('1'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item': LinkItem('blub', datetime(2000, 12, 4))}) self.assertFalse(self.save == save) self.assertTrue(self.save != save)
def setUp(self): self.save = SaveState( Version('1'), PluginInfo('Blub', '1.0.0', 'example.com'), datetime(1996, 12, 4), {'item': LinkItem('blub', datetime(1996, 12, 4))})
def setUp(self): self.item = LinkItem('blub', datetime(1996, 12, 4))
def test_from_protobuf(self): proto = LinkItemProto() proto.name = "" with self.assertRaises(ValueError): LinkItem.from_protobuf(proto)