def test_unregister(self): # unregister a field that we know exists field_registry.unregister('__balance__') self.assertNotIn('__balance__', field_registry.get_all_report_fields_names()) # bring it back again as later tests using it would fail field_registry.register(BalanceReportField)
def test_joined_per_day(self): field_registry.register(SlickReportField.create(Count, 'id', 'count__id')) report_generator = ReportGenerator(report_model=UserJoined, date_field='date_joined', group_by='date_joined', start_date=datetime.date(2020, 1, 1), end_date=datetime.date(2020, 1, 10), columns=['date_joined', 'count__id'], ) data = report_generator.get_report_data() self.assertEqual(len(data), 3) self.assertEqual(data[0]['count__id'], 1) self.assertEqual(data[1]['count__id'], 1) self.assertEqual(data[2]['count__id'], 2)
def test_many_to_many_group_by(self): field_registry.register(SlickReportField.create(Count, 'tax__name', 'tax__count')) report_generator = ReportGenerator(report_model=ComplexSales, date_field='doc_date', group_by='tax__name', columns=['tax__name', 'tax__count'], ) data = report_generator.get_report_data() self.assertEqual(len(data), 3) self.assertEqual(data[0]['tax__name'], 'State') self.assertEqual(data[0]['tax__count'], 3) self.assertEqual(data[1]['tax__name'], 'Vat reduced') self.assertEqual(data[1]['tax__count'], 2) self.assertEqual(data[2]['tax__name'], 'Vat full') self.assertEqual(data[2]['tax__count'], 1)
def register(): class ReportFieldWDuplicatedName(BaseReportField): name = '__total__' field_registry.register(ReportFieldWDuplicatedName)
def register(): class ReportFieldWDuplicatedName(BaseReportField): name = '__total_field__' calculation_field = 'field' field_registry.register(ReportFieldWDuplicatedName)