-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathchurn_script_logging_and_tests.py
More file actions
129 lines (83 loc) · 2.42 KB
/
churn_script_logging_and_tests.py
File metadata and controls
129 lines (83 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# TODO:
# Add a module-level docstring describing:
# - Purpose of this file
# - Author
# - Date created
import logging
import os
import churn_library as cls
LOGS_DIR = "./logs"
LOG_FILE = os.path.join(LOGS_DIR, "churn_library.log")
DATA_PATH = "./data/bank_data.csv"
# TODO:
# configure logging to write INFO and ERROR messages
# to a .log file inside the ./logs directory
def test_import(import_data):
"""Test data import."""
try:
df = import_data(DATA_PATH)
# TODO: add logging for success
except FileNotFoundError as err:
# TODO: add logging for file not found
raise err
try:
assert df.shape[0] > 0
assert df.shape[1] > 0
except AssertionError as err:
# TODO: add logging for failure
raise err
def test_eda(perform_eda):
"""Test EDA."""
try:
df = cls.import_data(DATA_PATH)
perform_eda(df)
# TODO:
# assert output files exist
# TODO: logging success
except Exception as err:
# TODO: logging failure
raise err
def test_encoder_helper(encoder_helper):
"""Test encoding."""
try:
df = cls.import_data(DATA_PATH)
# TODO:
# create response column
# call encoder_helper
# assert encoded columns exist
# TODO: logging success
except Exception as err:
# TODO: logging failure
raise err
def test_perform_feature_engineering(perform_feature_engineering):
"""Test feature engineering."""
try:
df = cls.import_data(DATA_PATH)
# TODO:
# prepare data
# call function
# assert outputs
# TODO: logging success
except Exception as err:
# TODO: logging failure
raise err
def test_train_models(train_models):
"""Test model training."""
try:
df = cls.import_data(DATA_PATH)
# TODO:
# prepare data
# call train_models
# assert model files + images exist
# TODO: logging success
except Exception as err:
# TODO: logging failure
raise err
if __name__ == "__main__":
# TODO: ensure logs directory exists
test_import(cls.import_data)
test_eda(cls.perform_eda)
test_encoder_helper(cls.encoder_helper)
test_perform_feature_engineering(cls.perform_feature_engineering)
test_train_models(cls.train_models)
print("Tests completed. Check logs for details.")