def test_sort_related(self): "Sorts on a reverse foreign key property." view = DataView(json=[ { 'concept': self.first_name.pk }, { 'concept': self.last_name.pk }, { 'concept': self.project_name.pk, 'sort': 'asc', 'visible': False }, ]) queryset = view.apply() exporter = export.BaseExporter(view) exporter.params.insert(0, (RawFormatter(keys=['pk']), 1)) exporter.row_length += 1 self.assertEqual(list(exporter.write(queryset.raw())), [(3, u'Erick', u'Smith'), (4, u'Aaron', u'Harris'), (5, u'Zac', u'Cook'), (6, u'Mel', u'Brooks'), (1, u'Eric', u'Smith'), (2, u'Erin', u'Jones')])
def test_sort_related(self): "Sorts on a reverse foreign key property." view = DataView( json=[ {"concept": self.first_name.pk}, {"concept": self.last_name.pk}, {"concept": self.project_name.pk, "sort": "asc", "visible": False}, ] ) queryset = view.apply() exporter = export.BaseExporter(view) exporter.params.insert(0, (RawFormatter(keys=["pk"]), 1)) exporter.row_length += 1 self.assertEqual( list(exporter.write(queryset.raw())), [ (3, u"Erick", u"Smith"), (4, u"Aaron", u"Harris"), (5, u"Zac", u"Cook"), (6, u"Mel", u"Brooks"), (1, u"Eric", u"Smith"), (2, u"Erin", u"Jones"), ], )
def setUp(self): management.call_command("avocado", "init", "tests", quiet=True) salary_concept = DataField.objects.get(field_name="salary").concepts.all()[0] view = DataView(json={"ordering": [[salary_concept.pk, "desc"]]}) self.query = view.apply(tree=models.Employee).raw() # Ick.. self.exporter = export.BaseExporter(view) self.exporter.params.insert(0, (RawFormatter(keys=["pk"]), 1)) self.exporter.row_length += 1
def setUp(self): management.call_command('avocado', 'init', 'tests', quiet=True) salary_concept = DataField.objects.get( field_name='salary').concepts.all()[0] view = DataView(json={'ordering': [[salary_concept.pk, 'desc']]}) self.query = view.apply(tree=models.Employee).raw() # Ick.. self.exporter = export.BaseExporter(view) self.exporter.params.insert(0, (RawFormatter(keys=['pk']), 1)) self.exporter.row_length += 1
def test_dataview_order_by(self): f = DataField(app_name='lexicon', model_name='month', field_name='id') f.save() c = DataConcept() c.save() cf = DataConceptField(field=f, concept=c) cf.save() v = DataView({'ordering': [c.pk]}) qs = Month.objects.filter(label__startswith='J').values('id') self.assertEqual(str(v.apply(qs).query), 'SELECT "lexicon_month"."id" FROM "lexicon_month" WHERE "lexicon_month"."label" LIKE J% ESCAPE \'\\\' ORDER BY "lexicon_month"."order" ASC')
def test_dataview_order_by(self): f = DataField(app_name='tests', model_name='month', field_name='id') f.save() c = DataConcept() c.save() cf = DataConceptField(field=f, concept=c) cf.save() v = DataView({'ordering': [[c.pk, 'asc']]}) qs = Month.objects.filter(label__startswith='J').values('id') self.assertEqual( unicode(v.apply(qs).query), 'SELECT "tests_month"."id" FROM "tests_month" WHERE "tests_month"."label" LIKE J% ESCAPE \'\\\' ORDER BY "tests_month"."order" ASC' )
def test_view(self): salary_field = DataField.objects.get_by_natural_key('exporting', 'title', 'salary') salary_concept = DataConcept() salary_concept.save() DataConceptField(concept=salary_concept, field=salary_field, order=1).save() view = DataView(json={'ordering': [[salary_concept.pk, 'desc']]}) query = view.apply(tree=models.Employee).raw() # Ick.. exporter = export.CSVExporter(view) exporter.params.insert(0, (RawFormatter(keys=['pk']), 1)) exporter.row_length += 1 buff = exporter.write(query) buff.seek(0) lines = buff.read().splitlines() # Skip the header self.assertEqual([int(x) for x in lines[1:]], [2, 4, 6, 1, 3, 5])