def test_to_xslx(self): rep = reports.BaseReport() def to_table(self): return [ [1, "http://www.example.com/" + "a" * 255, timezone.now(), timezone.now().date()], [2, { 'foo': 'bar' }], ] rep.to_table = to_table xls = rep.to_xlsx() assert isinstance(xls, io.BytesIO) assert xls.tell() == 0
def test_default_detail_value_format_iterable(self): assert reports.BaseReport().default_detail_value_format([1, 2]) == "1, 2"
def test_default_detail_value_format_datetime_range_naive(self): dt1 = timezone.datetime(2019, 1, 2, 2, 0) dt2 = timezone.datetime(2019, 1, 3, 2, 0) assert reports.BaseReport().default_detail_value_format([dt1, dt2]) == "02 Jan 2019 - 03 Jan 2019"
def test_default_detail_value_format_datetime_range_utc(self): dt1 = timezone.datetime(2019, 1, 2, 2, 0, tzinfo=timezone.utc) dt2 = timezone.datetime(2019, 1, 3, 2, 0, tzinfo=timezone.utc) assert reports.BaseReport().default_detail_value_format([dt1, dt2]) == "01 Jan 2019 - 02 Jan 2019"
def test_default_detail_value_format_datetime_naive(self): dt = timezone.datetime(2019, 1, 2, 2, 0) assert reports.BaseReport().default_detail_value_format(dt) == "02 Jan 2019"
def test_get_queryset(self): """get_queryset should return null for BaseReport""" assert reports.BaseReport().get_queryset() is None
def test_to_csv(self): rep = reports.BaseReport() rep.to_table = lambda x: [[1]] csv = rep.to_csv() assert isinstance(csv, io.StringIO) assert csv.tell() == 0
def test_to_html(self): assert 'class="container-fluid"' in reports.BaseReport().to_html()
def test_make_plain_url(self): Site.objects.update(domain="example.com") rep = reports.BaseReport() rep.report_format = "csv" url = rep.make_url("/foo/bar", text="foo", title="bar") assert url == 'http://example.com/foo/bar'
def test_make_html_url(self): Site.objects.update(domain="example.com") rep = reports.BaseReport() rep.report_format = "html" url = rep.make_url("foo/bar", text="foo", title="bar") assert url == '<a href="http://example.com/foo/bar" title="bar">foo</a>'
def test_html_property(self): """If report.html is truthy, report.plain should be False""" rep = reports.BaseReport() rep.report_format = "html" assert rep.plain is False assert rep.html is True
def test_get_report_url(self): Site.objects.update(domain="example.com") url = reports.BaseReport().get_report_url() assert url == 'http://example.com/reports/?opts=%7B%7D'
def test_get_filename(self): """By default filename is qatrack-report.ftype""" assert reports.BaseReport().get_filename("pdf") == "qatrack-report.pdf"
def test_get_template(self): """By default retrieve html report template""" t = reports.BaseReport().get_template() assert t.template.name == "reports/html_report.html"
def test_get_filter_form_null(self): """get_filter_form should return null for BaseReport""" assert reports.BaseReport().get_filter_form() is None
def test_default_detail_value_format_integer(self): assert reports.BaseReport().default_detail_value_format(1) == "1"
def test_get_report_details_no_filter_set(self): assert reports.BaseReport().get_report_details() == []
def test_default_detail_value_format_none(self): rep = reports.BaseReport() rep.report_format = "html" assert rep.default_detail_value_format(None) == "<em>No Filter</em>"
def test_to_pdf(self, chrometopdf): reports.BaseReport().to_pdf() assert 'class="container-fluid"' in chrometopdf.call_args[0][0]
def test_default_detail_value_format_str(self): assert reports.BaseReport().default_detail_value_format("foo") == "foo"
def test_default_detail_value_format_datetime_utc(self): dt = timezone.datetime(2019, 1, 2, 2, 0, tzinfo=timezone.utc) assert reports.BaseReport().default_detail_value_format(dt) == "01 Jan 2019"
def test_base_filter_form_valid(self): assert reports.BaseReport().filter_form_valid(None)