def test_raw_dataset(self): params = { 'title': 'My entry 1', 'content': 'My content 1.', 'tags': 'zinnia, test', 'slug': 'my-entry-1' } Entry.objects.create(**params) params = { 'title': 'My entry 2', 'content': 'My content 2.', 'tags': 'zinnia, test', 'slug': 'my-entry-2' } Entry.objects.create(**params) v = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title']) with self.assertNumQueries(1): self.assertEqual(len(v.raw_dataset), 2) self.assertEqual(sorted(v.raw_dataset.values()), [['entry'], ['entry']]) v = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title', 'content', 'tags']) self.assertEqual(sorted(v.raw_dataset.values()), [['entry', 'content', 'zinnia', 'test'], ['entry', 'content', 'zinnia', 'test']]) v = ModelVectorBuilder(queryset=Entry.objects.all().order_by('-pk'), fields=['title'], limit=1) self.assertEqual(list(v.raw_dataset.values()), [['entry']])
def test_get_related(self): params = { 'title': 'My entry 01', 'content': 'This is my first content 01', 'slug': 'my-entry-1' } e1 = Entry.objects.create(**params) vectors = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title', 'content']) with self.assertNumQueries(1): self.assertEquals(vectors.get_related(e1, 10), []) params = { 'title': 'My entry 02', 'content': 'My second content entry 02', 'slug': 'my-entry-2' } e2 = Entry.objects.create(**params) with self.assertNumQueries(0): self.assertEquals(vectors.get_related(e1, 10), []) vectors = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title', 'content']) with self.assertNumQueries(2): self.assertEquals(vectors.get_related(e1, 10), [e2]) with self.assertNumQueries(1): self.assertEquals(vectors.get_related(e1, 10), [e2])
def test_column_dataset(self): vectors = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title', 'excerpt', 'content']) with self.assertNumQueries(1): self.assertEqual(vectors.dataset, {}) self.assertEqual(vectors.columns, []) params = {'title': 'My entry 1 (01)', 'content': 'This is my first content 1 (01)', 'slug': 'my-entry-1'} e1 = Entry.objects.create(**params) params = {'title': 'My entry 2 (02)', 'content': 'My second content entry 2 (02)', 'slug': 'my-entry-2'} e2 = Entry.objects.create(**params) vectors = ModelVectorBuilder(queryset=Entry.objects.all(), fields=['title', 'excerpt', 'content']) self.assertEqual(vectors.columns, ['01', '02', 'content', 'entry']) self.assertEqual(vectors.dataset[e1.pk], [2, 0, 1, 1]) self.assertEqual(vectors.dataset[e2.pk], [0, 2, 1, 2])
def test_raw_clean(self): v = ModelVectorBuilder(queryset=Entry.objects.none(), fields=['title']) self.assertEquals(v.raw_clean('<p>HTML Content</p>'), ['html', 'content']) self.assertEquals(v.raw_clean('<p>An HTML Content</p>'), ['html', 'content']) self.assertEquals(v.raw_clean('<p>An HTML Content 2</p>'), ['html', 'content']) self.assertEquals(v.raw_clean('<p>!HTML Content ?</p>'), ['html', 'content'])