diff --git a/atdb/taskdatabase/tests/test_views_diagram_page.py b/atdb/taskdatabase/tests/test_views_diagram_page.py index aadaf8300eb0b278bc98a6a1a464359cd3a99fda..49c1175e26d2be05c87723b28eb027fb41dffdba 100644 --- a/atdb/taskdatabase/tests/test_views_diagram_page.py +++ b/atdb/taskdatabase/tests/test_views_diagram_page.py @@ -4,18 +4,6 @@ from django.urls import reverse from taskdatabase.models import Task, Workflow class DiagramPageViewTest(TestCase): - @classmethod - def setUpTestData(cls): - - # Set up non-modified objects used by all test methods - workflow = Workflow() - workflow.save() - - # create a list of Tasks - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='stored', workflow = workflow) - def test_url_exists_at_desired_location(self): response = self.client.get('/atdb/diagram/') self.assertEqual(response.status_code, 200) diff --git a/atdb/taskdatabase/tests/test_views_discarded_page.py b/atdb/taskdatabase/tests/test_views_discarded_page.py index 9e79f2a6dca3ece16bec5db6fa0e6d877422bee8..da0400cb7a7d95e159171b20d5828f4b97789931 100644 --- a/atdb/taskdatabase/tests/test_views_discarded_page.py +++ b/atdb/taskdatabase/tests/test_views_discarded_page.py @@ -4,18 +4,6 @@ from django.urls import reverse from taskdatabase.models import Task, Workflow class DiscardedPageViewTest(TestCase): - @classmethod - def setUpTestData(cls): - - # Set up non-modified objects used by all test methods - workflow = Workflow() - workflow.save() - - # create a list of Tasks - Task.objects.get_or_create(sas_id=12345, status='discarded', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='discarded', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='stored', workflow = workflow) - def test_url_exists_at_desired_location(self): response = self.client.get('/atdb/discarded') self.assertEqual(response.status_code, 200) diff --git a/atdb/taskdatabase/tests/test_views_failures_page.py b/atdb/taskdatabase/tests/test_views_failures_page.py index a2342724238963eef495229587c9d62c0e5a1851..662a43191fac451d23540af6cc8635b8558116b0 100644 --- a/atdb/taskdatabase/tests/test_views_failures_page.py +++ b/atdb/taskdatabase/tests/test_views_failures_page.py @@ -4,17 +4,6 @@ from django.urls import reverse from taskdatabase.models import Task, Workflow class FailuresPageViewTest(TestCase): - @classmethod - def setUpTestData(cls): - - # Set up non-modified objects used by all test methods - workflow = Workflow() - workflow.save() - - # create a list of Tasks - Task.objects.get_or_create(sas_id=12345, status='processed_failed', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='processed_failed', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='stored', workflow = workflow) def test_url_exists_at_desired_location(self): response = self.client.get('/atdb/failures') diff --git a/atdb/taskdatabase/tests/test_views_filter_page.py b/atdb/taskdatabase/tests/test_views_filter_page.py index 545c5448bf48dba8aa964c517ee02f896fb0cead..18a81731aa3922de2fcf1cd3a398b2c8fa5f76a9 100644 --- a/atdb/taskdatabase/tests/test_views_filter_page.py +++ b/atdb/taskdatabase/tests/test_views_filter_page.py @@ -4,18 +4,6 @@ from django.urls import reverse from taskdatabase.models import Task, Workflow class FilterPageViewTest(TestCase): - @classmethod - def setUpTestData(cls): - - # Set up non-modified objects used by all test methods - workflow = Workflow() - workflow.save() - - # create a list of Tasks - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='stored', workflow = workflow) - def test_url_exists_at_desired_location(self): response = self.client.get('/atdb/query/') self.assertEqual(response.status_code, 200) diff --git a/atdb/taskdatabase/tests/test_views_finished_page.py b/atdb/taskdatabase/tests/test_views_finished_page.py index 3de45fa27df79bd994a2763b845408de1d62a4d7..df8ba4138f44277ebd961f50e1b40793c3803d37 100644 --- a/atdb/taskdatabase/tests/test_views_finished_page.py +++ b/atdb/taskdatabase/tests/test_views_finished_page.py @@ -4,17 +4,6 @@ from django.urls import reverse from taskdatabase.models import Task, Workflow class FinishedPageViewTest(TestCase): - @classmethod - def setUpTestData(cls): - - # Set up non-modified objects used by all test methods - workflow = Workflow() - workflow.save() - - # create a list of Tasks - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='finished', workflow = workflow) - Task.objects.get_or_create(sas_id=12345, status='stored', workflow = workflow) def test_url_exists_at_desired_location(self): response = self.client.get('/atdb/finished') diff --git a/atdb/taskdatabase/tests/test_views_get_summary.py b/atdb/taskdatabase/tests/test_views_get_summary.py new file mode 100644 index 0000000000000000000000000000000000000000..ee64db5c1ac7e3a00f3b6552c820331037d4a3c1 --- /dev/null +++ b/atdb/taskdatabase/tests/test_views_get_summary.py @@ -0,0 +1,104 @@ +from django.test import TestCase +from django.urls import reverse +from django.http import JsonResponse, HttpResponse + +from taskdatabase.models import Task, Workflow +import taskdatabase.tests.test_calculated_qualities_outputs as outputs +import json + +class GetSummaryTestCase(TestCase): + def setUp(self): + print("setUp: Run once for every test method to setup clean data.") + + workflow_requantisation = Workflow(workflow_uri="psrfits_requantisation") + workflow_requantisation.save() + + # rfi_percent=0 + Task.objects.get_or_create(sas_id=54321, status='processed', + outputs=outputs.default_summary_flavour_with_rfi_percent_zero_1, + workflow=workflow_requantisation) + + # rfi_percent 11,22,31,52 + Task.objects.get_or_create(sas_id=54321, status='processed', outputs=outputs.default_summary_flavour_with_rfi_1, + workflow=workflow_requantisation) + Task.objects.get_or_create(sas_id=54321, status='processed', outputs=outputs.default_summary_flavour_with_rfi_2, + workflow=workflow_requantisation) + Task.objects.get_or_create(sas_id=54321, status='processed', outputs=outputs.default_summary_flavour_with_rfi_3, + workflow=workflow_requantisation) + Task.objects.get_or_create(sas_id=54321, status='processed', outputs=outputs.default_summary_flavour_with_rfi_4, + workflow=workflow_requantisation) + + def test_summary_json_response(self): + # Mock request + response = self.client.get(reverse('get-summary', args=['54321', 'json'])) + + # Check if response is JsonResponse + self.assertIsInstance(response, JsonResponse) + + def test_summary_json_contents(self): + response = self.client.get(reverse('get-summary', args=['54321', 'json'])) + + # Check if response is JsonResponse + self.assertIsInstance(response, JsonResponse) + + # Add more assertions as needed + json_data = json.loads(response.content.decode('utf-8')) + + # is this json generated for the expected SAS_ID? + expected = "Summary File for SAS_ID 54321" + actual = json_data['summary']['title'] + self.assertEqual(expected, actual) + + # are all the tasks in the json? + tasks = json_data['summary']['tasks'] + actual = len(tasks) + expected = 5 + self.assertEqual(expected, actual) + + # check 1 task for correct contents + t = tasks[0] + self.assertEqual(t['file'], 'L526107_summaryIS.tar') + self.assertEqual(t['input_name'], 'L526107_summaryIS.tar') + self.assertEqual(t['input_size'], 495749120) + self.assertEqual(t['output_size'], 283791360) + self.assertEqual(t['size_ratio'], '0.572') + + + def test_summary_html_response(self): + # Mock request + response = self.client.get(reverse('get-summary', args=['your_sas_id', 'html'])) + + # Check if response is HttpResponse + self.assertIsInstance(response, HttpResponse) + + + def test_summary_html_contents(self): + response = self.client.get(reverse('get-summary', args=['54321', 'html'])) + + # Check if response is JsonResponse + self.assertIsInstance(response, HttpResponse) + + # Add more assertions as needed + html_data = response.content.decode('utf-8') + + # is this html generated for the expected SAS_ID? + title = "Summary File for SAS_ID 54321" + found = False + if title in html_data: + found = True + self.assertEqual(found, True) + + # does this filename exist in the html? + input_name = "L526107_summaryIS.tar" + found = False + if input_name in html_data: + found = True + self.assertEqual(found, True) + + + def test_summary_pdf_response(self): + # Mock request + response = self.client.get(reverse('get-summary', args=['your_sas_id', 'pdf'])) + + # Check if response is HttpResponse + self.assertIsInstance(response, HttpResponse) \ No newline at end of file