def test_convert_to_db_names(fake_project: Dict[str, Any]): db_entries = _convert_to_db_names(fake_project) assert "tags" not in db_entries assert "prjOwner" not in db_entries # there should be not camelcasing in the keys, except inside the workbench assert re.match(r"[A-Z]", json.dumps(list(db_entries.keys()))) is None
def test_convert_to_schema_names(fake_project: Dict[str, Any]): db_entries = _convert_to_db_names(fake_project) schema_entries = _convert_to_schema_names(db_entries, fake_project["prjOwner"]) fake_project.pop("tags") expected_project = deepcopy(fake_project) expected_project.pop("prjOwner") assert schema_entries == expected_project # if there is a prj_owner, it should be replaced with the email of the owner db_entries["prj_owner"] = 321 schema_entries = _convert_to_schema_names(db_entries, fake_project["prjOwner"]) expected_project = deepcopy(fake_project) assert schema_entries == expected_project # test DB exclusive columns for col in DB_EXCLUSIVE_COLUMNS: db_entries[col] = "some fake stuff" schema_entries = _convert_to_schema_names(db_entries, fake_project["prjOwner"]) for col in DB_EXCLUSIVE_COLUMNS: assert col not in schema_entries # test non null keys for col in SCHEMA_NON_NULL_KEYS: db_entries[col] = None schema_entries = _convert_to_schema_names(db_entries, fake_project["prjOwner"]) for col in SCHEMA_NON_NULL_KEYS: assert col is not None # test date time conversion date = datetime.datetime.utcnow() db_entries["creation_date"] = date schema_entries = _convert_to_schema_names(db_entries, fake_project["prjOwner"]) assert "creationDate" in schema_entries assert schema_entries["creationDate"] == "{}Z".format( date.isoformat(timespec="milliseconds"))
def test_convert_to_db_names(fake_schema_dict): db_entries = _convert_to_db_names(fake_schema_dict) assert "an_entry_that_uses_camel_case" in db_entries assert "another_entry_that_uses_camel_case" in db_entries