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))