def test_process_row(self): csv_row = self.get_row() csv_loader.process_row(csv_row) self.assertEqual(models.Database.objects.get().name, "NHSE_IAPT") self.assertEqual(models.Table.objects.get().name, "Appointment_v15") db_row = models.Row.objects.get() self.assertEqual(db_row.data_item, "REFERRAL_ID") self.assertEqual(db_row.description, "A sequential number allocated") self.assertEqual(db_row.data_type, "bigint") self.assertEqual(db_row.derivation, "Derived as part of a process") self.assertEqual(db_row.data_dictionary_name, "ORGANISATION CODE (CODE OF PROVIDER)") self.assertEqual(db_row.data_dictionary_link, "http://www.datadictionary.nhs.uk/") self.assertEqual(db_row.author, "Francis Bacon") self.assertEqual(db_row.created_date_ext, datetime.date(2017, 8, 31)) self.assertEqual(db_row.is_derived_item, True) self.assertEqual(db_row.definition_id, 123) self.assertEqual(db_row.technical_check, "something")
def test_process_row_raises(self): csv_row = self.get_row(trees="are green") with self.assertRaises(ValueError) as v: csv_loader.process_row(csv_row) self.assertEqual(str(v.exception), "We are not saving a value for trees, should we be?")
def test_process_row_update(self): csv_row = self.get_row() csv_loader.process_row(csv_row) updated_csv_row = self.get_row( Data_Item_Description="something different") csv_loader.process_row(updated_csv_row) db_row = models.Row.objects.get() self.assertEqual(db_row.description, "something different")
def test_new_database(self): csv_row = self.get_row() csv_loader.process_row(csv_row) updated_csv_row = self.get_row(Database="different database") csv_loader.process_row(updated_csv_row) self.assertEqual( list(models.Database.objects.all().values_list("name", flat=True)), ["NHSE_IAPT", "different database"]) self.assertEqual(models.Table.objects.first().name, "Appointment_v15") self.assertEqual(models.Table.objects.last().name, "Appointment_v15")
def test_database_update_new_table(self): csv_row = self.get_row() csv_loader.process_row(csv_row) updated_csv_row = self.get_row(Table_Name="something different") csv_loader.process_row(updated_csv_row) self.assertEqual( list(models.Table.objects.all().values_list("name", flat=True)), ["Appointment_v15", "something different"]) self.assertEqual( models.Table.objects.first().row_set.first().data_item, "REFERRAL_ID") self.assertEqual(models.Table.objects.last().row_set.first().data_item, "REFERRAL_ID")
def test_ignore_unknown_empty_fields(self): csv_row = self.get_row(trees="") csv_loader.process_row(csv_row) self.assertEqual(models.Row.objects.first().data_item, "REFERRAL_ID")