def test_creation_of_fragments_without_title(self): Fragment.objects.all().delete() self.assert_counts([0], [Fragment]) fragment1 = Fragment( content='test' ) fragment1.save() self.assert_counts([1], [Fragment]) self.assert_equal(fragment1.title, '') self.assert_equal(fragment1.content, 'test')
def test_creation_of_fragments_without_content(self): Fragment.objects.all().delete() self.assert_counts([0], [Fragment]) fragment2 = Fragment( title='fragment2', ) fragment2.save() self.assert_counts([1], [Fragment]) self.assert_equal(fragment2.title, 'fragment2') self.assert_equal(fragment2.content, '')
def setUp(self): "Execute before every test case" self.fragment1 = Fragment( title='fragment1', content='test' ) self.fragment1.save() self.fragment2 = Fragment( title='fragment2', content='h2. test' ) self.fragment2.save()
def test_fragment_admin_view_exists(self): Fragment.objects.all().delete() self.assert_counts([0], [Fragment]) fragment1 = Fragment( title='fragment1', ) fragment1.save() self.assert_counts([1], [Fragment]) login_as_admin() response = self.client.get('/admin/fraggle/fragment/%s' % str(fragment1.id)) self.assert_code(response, 302) response = self.client.get('/admin/fraggle/fragment/%s/' % str(fragment1.id)) self.assert_code(response, 200)
class Common(TestCase): def setUp(self): "Execute before every test case" self.fragment1 = Fragment( title='fragment1', content='test' ) self.fragment1.save() self.fragment2 = Fragment( title='fragment2', content='h2. test' ) self.fragment2.save() def tearDown(self): "Execute after every test case" Fragment.objects.all().delete() tag_libraries = [] # helper methods def render(self, template, **kwargs): template = "".join(["{%% load %s %%}" % \ lib for lib in self.tag_libraries]) + template return Template(template).render(Context(kwargs)).strip() # custom assertions def assert_code(self, response, code): "Assert that a given response returns a given HTTP status code" self.assertEqual(code, response.status_code, "HTTP Response status code %d expected, but got %d" % (code, response.status_code)) def assert_equal(self, *args, **kwargs): "Assert that two values are equal" return self.assertEqual(*args, **kwargs) def assert_contains(self, needle, haystack): return self.assert_(needle in haystack, "Content should contain `%s' but doesn't:\n%s" % (needle, haystack)) def assert_render_contains(self, expected, template, **kwargs): """ Asserts than a given template and context rendering contains a given fragment """ self.assert_contains(expected, self.render(template, **kwargs)) def assert_render(self, expected, template, **kwargs): "Asserts than a given template and context render a given fragment" self.assert_equal(expected, self.render(template, **kwargs)) def assert_counts(self, expected_counts, models): """ Assert than a list of numbers is equal to the number of instances of a list of models """ actual_counts = [model.objects.count() for model in models] self.assert_equal(expected_counts, actual_counts, "%s should have counts %s but had %s" % ([m.__name__ for m in models], expected_counts, actual_counts))