class ArticleTest(TestCase):
	"""
	Tests for the Article models methods.
	"""

	def setUp(self):
		test_file = os.path.normpath(os.path.join(BASE_DIR, "fixtures/testfile.pdf"))
		data = {
			'file': File(open(test_file, 'rb')),
			'title': "This is a test file",
		}
		self.article = Article(**data)
		self.article.save()

	def tearDown(self):
		self.article.file.delete()

	def test_generate_thumbnail(self):
		expected = 'Generated Image: testfile_med.png'
		actual = self.article.generate_thumbnail(dryrun=True)
		self.assertEqual(expected, actual)

	def test_generate_all_thumbnails(self):
		extension_list = ['_%s.png' % k for k in IMG_SIZE.keys()]
		response_list = self.article.generate_all_thumbnails(dryrun=True)
		for ext in extension_list:
			message = "Generated Image: testfile%s" % ext
			self.assertTrue(message in response_list, msg=message + " not in %s" % response_list)

	def test_base_filename(self):
		expected = 'testfile'
		actual = self.article.base_filename()
		self.assertEqual(expected, actual)