def test_add_remove_discard(self): p = PackageTracker() x1 = self.make_pkg("/", "=dev-libs/X-1:0") x2 = self.make_pkg("/", "=dev-libs/X-2:0") p.add_pkg(x1) self.assertTrue(x1 in p) self.assertTrue(p.contains(x1, installed=True)) self.assertTrue(p.contains(x1, installed=False)) p.remove_pkg(x1) self.assertTrue(x1 not in p) p.add_pkg(x1) self.assertTrue(x1 in p) p.add_pkg(x1) self.assertTrue(x1 in p) self.assertRaises(KeyError, p.remove_pkg, x2) p.add_pkg(x2) self.assertTrue(x2 in p) p.remove_pkg(x2) self.assertTrue(x2 not in p) p.discard_pkg(x2) self.assertTrue(x2 not in p) p.add_pkg(x2) self.assertTrue(x2 in p) all_pkgs = list(p.all_pkgs("/")) self.assertEqual(len(all_pkgs), 2) self.assertTrue(all_pkgs[0] is x1 and all_pkgs[1] is x2) self.assertEqual(len(list(p.all_pkgs("/"))), 2) self.assertEqual(len(list(p.all_pkgs("/xxx"))), 0)