diff options
| author | lian-manonog <160282780+lian-manonog@users.noreply.github.com> | 2024-08-23 15:04:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-23 15:04:07 +0100 |
| commit | 5c236c6ee0d0b7e0612a51bf8eaa59322d192a6e (patch) | |
| tree | f77e625f8faca75f4d325021f5d20326b381516f /tests | |
| parent | 032760a745353b0584bc635bd5c51aa928677fea (diff) | |
| parent | 59035d00133eed3f258f75e3a99ce57cae35989d (diff) | |
| download | de-project-bentley-5c236c6ee0d0b7e0612a51bf8eaa59322d192a6e.tar.gz de-project-bentley-5c236c6ee0d0b7e0612a51bf8eaa59322d192a6e.zip | |
Merge pull request #94 from ajschofield/feature/transform-fact-sales-order
PR: rebased the fact-sales branch with the datafrrames branch - now merging into development
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_fact_sales_order.py | 110 | ||||
| -rw-r--r-- | tests/test_transform_lambda.py | 18 |
2 files changed, 124 insertions, 4 deletions
diff --git a/tests/test_fact_sales_order.py b/tests/test_fact_sales_order.py new file mode 100644 index 0000000..48426b4 --- /dev/null +++ b/tests/test_fact_sales_order.py @@ -0,0 +1,110 @@ +import pandas as pd +from fact_sales_order import create_dim_design, create_dim_staff, create_dim_currency +from src.fact_sales_order import ( + create_dim_design, + create_dim_staff, + create_dim_currency, +) + + +class TestCreateDimDesign: + def test_dim_design_returns_dataframe(self): + d = { + "test": ["Hello", "Bye"], + "design_id": ["Hello", "Bye"], + "design_name": ["Hello", "Bye"], + "file_name": ["Hello", "Bye"], + "file_location": ["Hello", "Bye"], + "Hello": ["Hello", "Bye"], + } + test_df = {"design": pd.DataFrame(data=d)} + result = create_dim_design(test_df) + assert isinstance(result, pd.DataFrame) + + def test_dim_design_returns_correct_columns_and_values(self): + d = { + "test": ["Hello", "Bye"], + "design_id": ["Hello", "Bye"], + "design_name": ["Hello", "Bye"], + "file_name": ["Hello", "Bye"], + "file_location": ["Hello", "Bye"], + "Hello": ["Hello", "Bye"], + } + test_df = {"design": pd.DataFrame(data=d)} + result = create_dim_design(test_df) + d2 = { + "design_id": ["Hello", "Bye"], + "design_name": ["Hello", "Bye"], + "file_name": ["Hello", "Bye"], + "file_location": ["Hello", "Bye"], + } + expected_df = pd.DataFrame(data=d2) + expected_result = expected_df.copy() + assert result.equals(expected_result) + + +class TestCreateDimStaff: + def test_dim_staff_returns_dataframe(self): + d = { + "staff_id": ["Hello", "Bye"], + "first_name": ["Hello", "Bye"], + "last_name": ["Hello", "Bye"], + "department_id": ["Hello", "Bye"], + } + d2 = { + "department_name": ["Hello", "Bye"], + "location": ["Hello", "Bye"], + "email_address": ["Hello", "Bye"], + "department_id": ["Hello", "Bye"], + } + test_df = {"staff": pd.DataFrame(data=d), "department": pd.DataFrame(data=d2)} + result = create_dim_staff(test_df) + assert isinstance(result, pd.DataFrame) + + def test_dim_staff_returns_correct_columns_and_values(self): + d = { + "staff_id": ["Hello", "Bye"], + "first_name": ["Hello", "Bye"], + "last_name": ["Hello", "Bye"], + "department_id": ["Hello", "Bye"], + } + d2 = { + "department_name": ["Hello", "Bye"], + "location": ["Hello", "Bye"], + "email_address": ["Hello", "Bye"], + "department_id": ["Hello", "Bye"], + } + test_df = {"staff": pd.DataFrame(data=d), "department": pd.DataFrame(data=d2)} + result = create_dim_staff(test_df) + expected_d = { + "staff_id": ["Hello", "Bye"], + "first_name": ["Hello", "Bye"], + "last_name": ["Hello", "Bye"], + "department_name": ["Hello", "Bye"], + "location": ["Hello", "Bye"], + "email_address": ["Hello", "Bye"], + } + expected_df = pd.DataFrame(data=expected_d) + expected_result = expected_df.copy() + assert result.equals(expected_result) + + +class TestCreateDimCurrency: + def test_dim_currency_returns_dataframe(self): + d = {"currency_id": [1, 2, 3], "currency_code": ["USD", "EUR", "GBP"]} + test_df = {"currency": pd.DataFrame(data=d)} + result = create_dim_currency(test_df) + assert isinstance(result, pd.DataFrame) + + def test_dim_currency_returns_columns_and_values(self): + d = {"currency_id": [1, 2, 3], "currency_code": ["USD", "EUR", "GBP"]} + test_df = {"currency": pd.DataFrame(data=d)} + result = create_dim_currency(test_df) + expected_d = { + "currency_id": [1, 2, 3], + "currency_code": ["USD", "EUR", "GBP"], + "currency_name": ["US Dollar", "Euro", "Pound"], + } + expected_df = pd.DataFrame(data=expected_d) + expected_result = expected_df.copy() + assert result.equals(expected_result) diff --git a/tests/test_transform_lambda.py b/tests/test_transform_lambda.py index 4c689f7..37ca08f 100644 --- a/tests/test_transform_lambda.py +++ b/tests/test_transform_lambda.py @@ -40,8 +40,13 @@ class TestReadFromS3: ) print(result) expected_df = pd.DataFrame( - np.array([["Vegetable", "Sour", "Green"], ["Berry", "Sweet", "Red"]]), - columns=["Food_type", "Flavour", "Colour"], + np.array( + [ + ["Vegetable", "Sour", "Green", "2022-11-03 14:20:49.962"], + ["Berry", "Sweet", "Red", "2022-11-03 14:20:49.962"], + ] + ), + columns=["Food_type", "Flavour", "Colour", "last_updated"], ) assert isinstance(result, dict) assert list(result.keys())[0] == "Foods" @@ -58,8 +63,13 @@ class TestReadFromS3: tables, bucket="dummy_buc", client=s3_client ) expected_foods_df = pd.DataFrame( - np.array([["Vegetable", "Sour", "Green"], ["Berry", "Sweet", "Red"]]), - columns=["Food_type", "Flavour", "Colour"], + np.array( + [ + ["Vegetable", "Sour", "Green", "2022-11-03 14:20:49.962"], + ["Berry", "Sweet", "Red", "2022-11-03 14:20:49.962"], + ] + ), + columns=["Food_type", "Flavour", "Colour", "last_updated"], ) expected_cars_df = pd.DataFrame( np.array( |
