def test_entry_unicode(self): entry = Entry(owner=self.user2, title='foo', content='bar') entry.save() self.assertEqual(u'foo', str(entry)) # clean up the objecs so haystack doesn't have indexes laying around entry.delete()
def setUp(self): self.user = User.objects.create(username='******') self.user.save() entry1 = Entry(owner=self.user, title='Python and Django', draft=True, tags='python, django', markup=None) entry2 = Entry(owner=self.user, title='Django', draft=False, tags='python, django', content='foo bar\nbaz', markup='LinebreaksFormatter') entry1.save() entry2.save() entry1.sites = entry2.sites = Site.objects.all() entry1.save() entry2.save()
def test_entry_get_html_content(self): """ Tests the get_html_content method used in the admin template to link to the entry to preview """ entry = Entry(owner=self.user2, title='foo', content='bar') entry.save() content = entry.get_html_content() # We don't care what the HTML looks like, just that it contains a link # to the entry self.assertTrue(content.find(entry.get_absolute_url()) > 0) self.assertTrue(hasattr(entry.get_html_content, 'allow_tags')) # clean up the objecs so haystack doesn't have indexes laying around entry.delete()
def test_search_only_returns_active(self): """ This verifies that only active entries return in the results, unless the user is_staff=True """ self.client = Client() # We are using db instead of mocking so that the haystack indexes # are created entry1 = Entry(owner=self.staff_user, title='Python and Django', draft=True, markup=None, tags='python, django') entry2 = Entry(owner=self.user2, title='Django', draft=False, markup=None, tags='python, django') entry1.save() entry2.save() self.client.login(username=self.user2.username, password='******') response = self.client.post('/search/?q=python') self.assertTrue(len(response.context['results']), 1)
val = node.childNodes[0].nodeValue if val: return val def getValidNode(node): if hasattr(node, 'tagName'): return node return None if sys.argv[1]: for f in glob.glob(path.join(sys.argv[1], "*.xml")): ds = open(f) dom = parse(ds) e = Entry() e.markup = 'brk' tags = [] for node in dom.childNodes[0].childNodes: if getValidNode(node): ignore = ['owner', 'description', 'notifications', 'tags', 'categories'] if not node.tagName in ignore: val = getNodeValue(node) if node.tagName == 'author': owner = User.objects.filter(username=val)[0] if owner: e.owner = owner else:
def test_get_related(self): entry1 = Entry(owner=self.user2, title='foo1', content='bar', draft=False, tags='python, django') entry1.save() entry1.sites = Site.objects.all() entry1.save() entry2 = Entry(owner=self.user2, title='foo2', content='bar', featured=True, draft=False, tags='python, django') entry2.save() entry2.sites = Site.objects.all() entry2.save() entry3 = Entry(owner=self.user2, title='foo3', content='bar', draft=False, tags='python, django') entry3.save() entry3.sites = Site.objects.all() entry3.save() self.assertEqual(len(entry3.get_related()), 2) entry4 = Entry(owner=self.user2, title='foo3', content='bar', draft=False) entry4.save() entry4.sites = Site.objects.all() entry4.related_content.add(entry1) entry4.related_content.add(entry2) entry4.save() self.assertEqual(len(entry4.get_related(max=3)), 2) self.assertEqual(len(entry4.get_related(max=1)), 1) # clean up the objecs so haystack doesn't have indexes laying around entry1.delete() entry2.delete() entry3.delete() entry4.delete()
def test_featured_entry_is_first(self): """ Featured entries should always be at the beginning of the list """ entry1 = Entry(owner=self.user2, title='foo1', content='bar', draft=False) entry1.save() entry2 = Entry(owner=self.user2, title='foo2', content='bar', featured=True, draft=False) entry2.save() entry3 = Entry(owner=self.user2, title='foo3', content='bar', draft=False) entry3.save() self.assertEqual(entry2, Entry.objects.all()[0]) # clean up the objecs so haystack doesn't have indexes laying around entry1.delete() entry2.delete() entry3.delete()