Exemple #1
0
class ScriptTest(TestCase):
	"""
	Unit tests for title script
	"""

	def setUp(self):
		self.k = Kingdom()
		self.k.save()

		self.f = Folk(
			first_name="bob",
			kingdom=self.k,
		)
		self.f.save()

		self.t = Title(
			name="Dummy title",
			slug="dummy_title",
			description="Nothing to say."
		)
		self.t.save()

	def test_kingdom_get_folk_in_title(self):
		"""
		Check folk is returned
		"""
		at2 = AvailableTitle(
			title=self.t,
			kingdom=self.k,
			folk=self.f
		)
		at2.save()
		self.assertEqual(self.f, self.k.get_folk_in_title("dummy_title"))

	def test_kingdom_get_folk_in_title_fail(self):
		"""
		Check None is returned
		"""
		at2 = AvailableTitle(
			title=self.t,
			kingdom=self.k,
			folk=self.f
		)
		at2.save()
		self.assertIsNone(self.k.get_folk_in_title("zerfzef"))

	def test_kingdom_get_folk_in_title_empty(self):
		"""
		Check None is returned
		"""
		at2 = AvailableTitle(
			title=self.t,
			kingdom=self.k,
		)
		at2.save()
		self.assertIsNone(self.k.get_folk_in_title("dummy_title"))

	def test_kingdom_unlock_title(self):
		"""
		Check available title is created
		"""

		# Sanity check
		self.assertRaises(AvailableTitle.DoesNotExist, (lambda: AvailableTitle.objects.get(kingdom=self.k, title=self.t)))

		self.k.unlock_title("dummy_title")
		
		# AssertNoRaises
		AvailableTitle.objects.get(kingdom=self.k, title=self.t)

	def test_kingdom_unlock_title_already_available(self):
		"""
		Check you can unlock twice
		"""

		self.k.unlock_title("dummy_title")
		self.k.unlock_title("dummy_title")

	def test_folk_add_title(self):
		"""
		Check the title is added
		"""
		self.assertRaises(AvailableTitle.DoesNotExist, self.k.get_folk_in_title("dummy_title"))

		self.at = AvailableTitle(
			title=self.t,
			kingdom=self.k,
			folk=self.f
		)
		self.at.save()
		self.f.add_title("dummy_title")
		
		self.assertEqual("bob", self.k.get_folk_in_title("dummy_title").first_name)

	def test_folk_remove_title(self):
		"""
		Check the title is removed
		"""
		self.assertRaises(AvailableTitle.DoesNotExist, self.k.get_folk_in_title("dummy_title"))

		self.at = AvailableTitle(
			title=self.t,
			kingdom=self.k,
			folk=self.f
		)
		self.at.save()
		self.f.add_title("dummy_title")
		
		self.assertEqual("bob", self.k.get_folk_in_title("dummy_title").first_name)
		self.f.remove_title()
		self.assertEqual(None, self.k.get_folk_in_title("dummy_title"))