diff options
| author | bulve-ad <78788030+bulve-ad@users.noreply.github.com> | 2024-08-27 15:23:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-27 15:23:49 +0100 |
| commit | 6761a7a8558079dc3107d69f2f3affc67e1577ae (patch) | |
| tree | ecf3af44a45084dc3d8f96fd2592f09380f0c51f | |
| parent | 1abb20b7f5ef24117efd7a9f79a4044ddca600e3 (diff) | |
| parent | 0b3c864cdfcc48cbb26d7bdea2a69d0e64e0fb38 (diff) | |
| download | de-project-bentley-6761a7a8558079dc3107d69f2f3affc67e1577ae.tar.gz de-project-bentley-6761a7a8558079dc3107d69f2f3affc67e1577ae.zip | |
Merge pull request #100 from ajschofield/test/transform-helper-functions
pr: test/transform helper functions
| -rw-r--r-- | src/dataframes.py | 37 | ||||
| -rw-r--r-- | tests/test_dataframes.py | 16 |
2 files changed, 29 insertions, 24 deletions
diff --git a/src/dataframes.py b/src/dataframes.py index e60123a..ce15872 100644 --- a/src/dataframes.py +++ b/src/dataframes.py @@ -20,14 +20,15 @@ import requests def create_fact_sales_order(dict_of_df): df_sales = dict_of_df["sales_order"] df_sales.index.name = "sales_record_id" - df_sales["created_date"] = pd.to_datetime(df_sales["created_at"], format="%Y-%m-%d") - df_sales["created_time"] = pd.to_datetime(df_sales["created_at"], format="%H-%M-%S") - df_sales["last_updated_date"] = pd.to_datetime( - df_sales["last_updated"], format="%Y-%m-%d" + df_sales["created_date"] = pd.to_datetime( + df_sales["created_at"].dt.date, format="%Y-%m-%d" ) - df_sales["last_updated_time"] = pd.to_datetime( - df_sales["last_updated"], format="%H-%M-%S" + df_sales["created_time"] = df_sales["created_at"].dt.floor("s").dt.time + df_sales["last_updated_date"] = pd.to_datetime( + df_sales["last_updated"].dt.date, format="%Y-%m-%d" ) + df_sales["last_updated_time"] = df_sales["last_updated"].dt.floor("s").dt.time + df_sales["agreed_delivery_date"] = pd.to_datetime( df_sales["agreed_delivery_date"], format="%Y-%m-%d" ) @@ -45,14 +46,14 @@ def create_fact_sales_order(dict_of_df): def create_fact_purchase_orders(dict_of_df): df_po = dict_of_df["purchase_order"] df_po.index.name = "purchase_record_id" - df_po["created_date"] = pd.to_datetime(df_po["created_at"], format="%Y-%m-%d") - df_po["created_time"] = pd.to_datetime(df_po["created_at"], format="%H-%M-%S") - df_po["last_updated_date"] = pd.to_datetime( - df_po["last_updated"], format="%Y-%m-%d" + df_po["created_date"] = pd.to_datetime( + df_po["created_at"].dt.date, format="%Y-%m-%d" ) - df_po["last_updated_time"] = pd.to_datetime( - df_po["last_updated"], format="%H-%M-%S" + df_po["created_time"] = df_po["created_at"].dt.floor("s").dt.time + df_po["last_updated_date"] = pd.to_datetime( + df_po["last_updated"].dt.date, format="%Y-%m-%d" ) + df_po["last_updated_time"] = df_po["last_updated"].dt.floor("s").dt.time df_po["agreed_delivery_date"] = pd.to_datetime( df_po["agreed_delivery_date"], format="%Y-%m-%d" ) @@ -71,17 +72,13 @@ def create_fact_payment(dict_of_df): df_payment = dict_of_df["payment"] df_payment.index.name = "payment_record_id" df_payment["created_date"] = pd.to_datetime( - df_payment["created_at"], format="%Y-%m-%d" - ) - df_payment["created_time"] = pd.to_datetime( - df_payment["created_at"], format="%H-%M-%S" + df_payment["created_at"].dt.date, format="%Y-%m-%d" ) + df_payment["created_time"] = df_payment["created_at"].dt.floor("s").dt.time df_payment["last_updated_date"] = pd.to_datetime( - df_payment["last_updated"], format="%Y-%m-%d" - ) - df_payment["last_updated_time"] = pd.to_datetime( - df_payment["last_updated"], format="%H-%M-%S" + df_payment["last_updated"].dt.date, format="%Y-%m-%d" ) + df_payment["last_updated_time"] = df_payment["last_updated"].dt.floor("s").dt.time df_payment["payment_date"] = pd.to_datetime( df_payment["payment_date"], format="%Y-%m-%d" ) diff --git a/tests/test_dataframes.py b/tests/test_dataframes.py index 584ab27..bd81f73 100644 --- a/tests/test_dataframes.py +++ b/tests/test_dataframes.py @@ -252,11 +252,15 @@ class TestCreateFactPayment: "payment": pd.DataFrame( data=[ [ - dt(2020, 5, 17, 6, 15, 20), - dt(2020, 5, 20, 8, 19, 30), + dt.strptime( + "2022-11-03 14:20:49.962846", "%Y-%m-%d %H:%M:%S.%f" + ), + dt.strptime( + "2022-12-14 16:20:49.962194", "%Y-%m-%d %H:%M:%S.%f" + ), 1, "SE18 9QO", - "2020-7-16", + "2020-07-16", ] ], columns=[ @@ -283,5 +287,9 @@ class TestCreateFactPayment: for col in list(result.columns): assert col in expected_cols for col in expected_cols: - if "date" in col: + if "_date" in col: + print(col) assert result[col].dtype == "datetime64[ns]" + if "_time" in col: + print(col) + assert result[col].dtype == "O" # << O for object |
