def test_create_document_object(self): doc = Document(title="foo", document_type=DocumentType.objects.all()[0], notes="bonk") doc.file.save(name="whee", content=ContentFile("wee willy wonka")) doc.programs = Program.objects.all()[:2] doc.authors = [self.john.id] self.assertItemsEqual([doc], Document.objects.all())
def test_document_page_changelist(self): doc = Document(title='foo bar', document_type=DocumentType.objects.all()[0], notes="bonk") # from lib.monkeypatch import breakpoint # breakpoint() doc.file.save(name="foo", content=ContentFile("foo bar baz")) doc.authors = [self.john] doc.programs = [Program.objects.all()[1]] doc.save() doc2 = Document(title='foo baz', document_type=DocumentType.objects.all()[1], notes="whee") # from lib.monkeypatch import breakpoint # breakpoint() doc2.file.save(name="foo", content=ContentFile("foo bar baz")) doc2.authors = [self.ringo] doc2.programs = [Program.objects.all()[2]] doc2.save() response = self.client.get(reverse('search'), {'q': 'foo'}) self.assertEqual(response.status_code, 200) table, queryset = self.assert_search_results_table_get_queryset(response) self.assertEqual(2, len(queryset), "Unexpected search results: %s" % queryset) from haystack.utils import get_identifier result = [q for q in queryset if q.id == get_identifier(doc)] self.assertEqual(get_identifier(doc), result[0].id) result = result[0] # print object.__str__(queryset[0]) self.assertEqual("<a href='%s'>%s</a>" % (doc.get_absolute_url(), doc.title), table.render_title(doc.title, result)) row = [r for r in table.page.object_list if r.record.pk == doc.id][0] self.assertEqual("<a href='%s'>%s</a>" % (doc.get_absolute_url(), doc.title), row['title']) self.assertEqual(doc.authors.all()[0].full_name, row['author_names']) self.assertEqual(doc.created, row['created']) self.assertEqual(doc.programs.all()[0].name, row['programs']) self.assertEqual(doc.document_type.name, row['document_type'])
def handle_noargs(self, **options): doc_dir = os.path.join(os.path.dirname(__file__), '..', '..', 'fixtures') doctypes = DocumentType.objects.all() programs = Program.objects.all() users = IntranetUser.objects.all() for i in range(1000): for f in os.listdir(doc_dir): doc = Document() doc.title = random.random() doc.file = File(open(os.path.join(doc_dir, f))) doc.notes = random.random() doc.document_type = random.choice(doctypes) doc.save() doc.programs = random.sample(programs, 2) doc.authors = random.sample(users, 1)