Example #1
0
	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)