예제 #1
0
 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"])
예제 #2
0
 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")
예제 #3
0
 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")
예제 #4
0
 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"]
         )
예제 #5
0
 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"])
예제 #6
0
 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"])
예제 #7
0
    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"}')
예제 #8
0
 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"]
         )
예제 #9
0
    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"]])
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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"])
예제 #13
0
 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)
예제 #14
0
 def test_0_count(self):
     renderer = extract.CsvRenderer(Colour, Colour.objects.all(), self.user)
     self.assertEqual(renderer.count(), 0)
예제 #15
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())