def test_set_fields(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user, fields=["name", "episode_id"]) self.assertEqual(renderer.fields, ["name", "episode_id"]) self.assertEqual(renderer.get_headers(), ["Name", "Episode"])
def test_serialize_string(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user, fields=["name"]) result = renderer.serialize_value("hello") self.assertEqual(result, "hello")
def test_serialize_list_simple(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user, fields=["name"]) result = renderer.serialize_value(["hello", "there"]) self.assertEqual(result, "hello; there")
def test_get_headers_uses_fields_arg(self): renderer = extract.CsvRenderer( Colour, Colour.objects.all(), self.user, fields=["name"] ) self.assertEqual( renderer.get_headers(), ["Name"] )
def test_get_row_uses_fields_arg(self): _, episode = self.new_patient_and_episode_please() colour = Colour.objects.create(name="Blue", episode=episode) renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user, fields=["name"]) self.assertEqual(renderer.get_row(colour), ["Blue"])
def test_get_row(self): with patch.object(Colour, "_get_fieldnames_to_extract") as field_names: _, episode = self.new_patient_and_episode_please() colour = Colour.objects.create(name="Blue", episode=episode) field_names.return_value = ["name", "consistency_token"] renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) self.assertEqual(renderer.get_row(colour), ["Blue"])
def test_serialize_dict(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user, fields=["name"]) dt = timezone.make_aware(datetime.datetime(2017, 2, 9, 10, 00, 16)) result = renderer.serialize_value({"hello": dt}) self.assertEqual(result, '{"hello": "2017-02-09T10:00:16Z"}')
def test_get_headers(self): with patch.object(Colour, "_get_fieldnames_to_extract") as field_names: field_names.return_value = ["name", "consistency_token"] renderer = extract.CsvRenderer( Colour, Colour.objects.all(), self.user ) self.assertEqual( renderer.get_headers(), ["Name"] )
def test_get_rows(self): _, episode = self.new_patient_and_episode_please() colour = Colour.objects.create(name="Blue", episode=episode) renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) with patch.object(renderer, "get_row") as get_row: get_row.return_value = ["some_row"] result = list(renderer.get_rows()) get_row.assert_called_with(colour) self.assertEqual(result, [["some_row"]])
def test_list_render(self): _, episode = self.new_patient_and_episode_please() colour = Colour.objects.create(name="Blue", episode=episode) normal_to_dict = colour.to_dict(self.user) normal_to_dict["name"] = ["onions", "kettles"] with patch.object(colour, "to_dict") as to_dicted: to_dicted.return_value = normal_to_dict renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) result = renderer.get_row(colour) self.assertIn("onions; kettles", result)
def test_to_dict_render(self): _, episode = self.new_patient_and_episode_please() colour = Colour.objects.create(name="Blue", episode=episode) normal_to_dict = colour.to_dict(self.user) normal_to_dict["name"] = {"RGB": "50, 168, 82", "Hex": "#32a852"} with patch.object(colour, "to_dict") as to_dicted: to_dicted.return_value = normal_to_dict renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) result = renderer.get_row(colour) self.assertIn(json.dumps(normal_to_dict["name"]), result)
def test_write_to_file(self, csv): _, episode = self.new_patient_and_episode_please() Colour.objects.create(name="Blue", episode=episode) renderer = extract.CsvRenderer( Colour, Colour.objects.all(), self.user ) with patch.object(renderer, "get_rows"): with patch.object(renderer, "get_headers"): renderer.get_rows.return_value = [["row"]] renderer.get_headers.return_value = ["header"] self.mocked_extract(renderer.write_to_file, ["some file"]) self.assertEqual(renderer.get_rows.call_count, 1) self.assertEqual(renderer.get_headers.call_count, 1) self.assertEqual(csv.writer().writerow.call_count, 2) self.assertEqual(csv.writer().writerow.mock_calls[0][1][0], ["header"]) self.assertEqual(csv.writer().writerow.mock_calls[1][1][0], [b"row"])
def test_1_count(self): Colour.objects.create(name="Blue", episode=self.episode) renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) self.assertEqual(renderer.count(), 1)
def test_0_count(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) self.assertEqual(renderer.count(), 0)
def test_init(self): renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) self.assertEqual(renderer.model, Colour) renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user) self.assertEqual(renderer.fields, renderer.get_field_names_to_render())