aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbulve-ad <78788030+bulve-ad@users.noreply.github.com>2024-08-27 15:23:49 +0100
committerGitHub <noreply@github.com>2024-08-27 15:23:49 +0100
commit6761a7a8558079dc3107d69f2f3affc67e1577ae (patch)
treeecf3af44a45084dc3d8f96fd2592f09380f0c51f
parent1abb20b7f5ef24117efd7a9f79a4044ddca600e3 (diff)
parent0b3c864cdfcc48cbb26d7bdea2a69d0e64e0fb38 (diff)
downloadde-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.py37
-rw-r--r--tests/test_dataframes.py16
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
git.ajschof.me — hosted by ajschofield — powered by cgit