def test_auto_installed_separation(self): log = DpkgHistory(var_location="data/var/", since = datetime(2013, 8, 6, 12, 20, 00)) self.assertIn('auto-install', log.keys()) self.assertEqual(len(log['install']), 10) self.assertEqual(len(log['auto-install']), 7) expected = [(u'lib32asound2', u'1.0.25-1ubuntu10.2'), (u'lib32z1', u'1:1.2.3.4.dfsg-3ubuntu4'), (u'libc6-i386', u'2.15-0ubuntu10.4'), (u'linux-headers-3.8.0-27', u'3.8.0-27.40~precise3'), (u'linux-headers-3.8.0-27-generic', u'3.8.0-27.40~precise3'), (u'lynx-cur', u'2.8.8dev.9-2ubuntu0.12.04.1'), (u'python-gpgme', u'0.2-1')] self.assertEqual(log['auto-install'], expected)
def test_logfiles_to_check(self): log = DpkgHistory(var_location="data/var/", since = datetime(2012, 5, 3, 12, 20, 00)) files = [f.name for f in log._logfiles_to_check()] self.assertEqual(files, [u'data/var/log/dpkg.log.1', u'data/var/log/dpkg.log']) log = DpkgHistory(var_location="data/var/", since = datetime(2012, 04, 25, 12, 04, 27)) files = [f.name for f in log._logfiles_to_check()] self.assertEqual(files, [u'data/var/log/dpkg.log.2.gz', u'data/var/log/dpkg.log.1', u'data/var/log/dpkg.log']) log = DpkgHistory(var_location="data/var/", since = datetime(2013, 8, 01, 19, 53, 46))
def test_add(self): log1 = DpkgHistory(do_parse=False) log2 = DpkgHistory(do_parse=False) log1.since = 1 log2.since = 2 log1['install'] = [('one', '1'), ('two', '2'), ('three', '3')] log1['upgrade'] = [('four', '4, 4.1'), ('five', '5')] log1['remove'] = [('six', '6'), ('seven', '7')] log2['install'] = [('eight', '8'), ('six', '6.1')] log2['remove'] = [('two', '2'), ('five', '5')] log2['upgrade'] = [('one', '1, 1.2'), ('four', '4.1, 4.2')] log3 = log1 + log2 self.assertEqual(log3['install'], [('eight', '8'), ('one', u'1.2'), ('three', '3')]) self.assertEqual(log3['upgrade'], [('four', '4, 4.2'), ('six', '6, 6.1')]) self.assertEqual(log3['remove'], [('five', '5'), ('seven', '7')]) self.assertEqual(log3['purge'], log3['auto-install'], []) # Now the other way round, the upgrade version numbers are # not all that logical, but it would probably be better to # output something reasonable rather than throw an error. # logs are not infallible. log1.since = 2 log2.since = 1 log3 = log1 + log2 self.assertEqual(log3['install'], [('eight', '8'), ('three', '3')]) self.assertEqual(log3['upgrade'], [('four', u'4.1, 4.1'), ('one', u'1, 1')]) self.assertEqual(log3['remove'], [('seven', '7')]) self.assertEqual(log3['purge'], log3['auto-install'], [])
def lists_are_sorted(self): log = DpkgHistory(var_location="data/var/", since = "2012-05-03 12:20:00") for v in log.values(): self.assertEqual(v, sorted(v))