Skip to content

Commit f95a146

Browse files
committed
cleaning up and fixing tests
1 parent 0498ed4 commit f95a146

File tree

5 files changed

+59
-21
lines changed

5 files changed

+59
-21
lines changed

claims_hosp/delphi_claims_hosp/run.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ def run_module(params, logger=None):
5656
adjustments (False).
5757
"""
5858
start_time = time.time()
59-
issue_date_str = params.get("patch", {}).get("current_issue", None)
60-
issue_date = datetime.strptime(issue_date_str, "%Y-%m-%d")
6159
# safety check for patch parameters exists in file, but not running custom runs/patches
6260
custom_run_flag = False if not params["common"].get("custom_run", False) else params["common"]["custom_run"]
61+
issue_date_str = params.get("patch", {}).get("current_issue", None)
62+
issue_date = datetime.strptime(issue_date_str, "%Y-%m-%d") if issue_date_str else None
6363
if not logger:
6464
logger = get_structured_logger(
6565
__name__,

claims_hosp/tests/conftest.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
def params():
2020
params = {
2121
"common": {
22-
"export_dir": f"{TEST_DIR}/receiving",
22+
"export_dir": f"{TEST_DIR}/retrieve_files",
2323
"log_filename": f"{TEST_DIR}/test.log",
24-
"custom_run": True,
24+
"custom_run": False,
2525
},
2626
"indicator": {
2727
"drop_date": None,
@@ -58,9 +58,10 @@ def params():
5858
@pytest.fixture
5959
def params_w_patch(params):
6060
params_copy = copy.deepcopy(params)
61+
params_copy["common"]["custom_run"] = True
6162
params_copy["patch"] = {
62-
"start_issue": "2020-11-07",
63-
"end_issue": "2020-11-07",
63+
"start_issue": "2020-06-12",
64+
"end_issue": "2020-06-12",
6465
"patch_dir": "./patch_dir"
6566
}
6667
return params_copy

claims_hosp/tests/retrieve_files/.gitignore

Whitespace-only changes.

claims_hosp/tests/test_patch.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
from unittest.mock import patch as mock_patch, MagicMock
55
import os
66
import shutil
7+
8+
from delphi_claims_hosp.download_claims_ftp_files import change_date_format
9+
710
from conftest import TEST_DIR
811

912
from delphi_claims_hosp.patch import patch
10-
from delphi_claims_hosp.backfill import merge_existing_backfill_files
13+
from delphi_claims_hosp.backfill import merge_existing_backfill_files, merge_backfill_file
1114

1215
class TestPatchModule:
1316

@@ -16,24 +19,28 @@ def test_patch(self, params_w_patch):
1619
mock_patch('delphi_claims_hosp.patch.read_params') as mock_read_params, \
1720
mock_patch('delphi_claims_hosp.download_claims_ftp_files.paramiko.SSHClient') as mock_ssh_client, \
1821
mock_patch('delphi_claims_hosp.download_claims_ftp_files.path.exists', return_value=False), \
19-
mock_patch('delphi_claims_hosp.backfill.merge_existing_backfill_files') as mock_backfill:
22+
mock_patch('delphi_claims_hosp.run.merge_existing_backfill_files') as mock_patch_backfill, \
23+
mock_patch('delphi_claims_hosp.run.merge_backfill_file') as mock_backfill:
2024
mock_ssh_client_instance = MagicMock()
2125
mock_ssh_client.return_value = mock_ssh_client_instance
2226
mock_sftp = MagicMock()
2327
mock_ssh_client_instance.open_sftp.return_value = mock_sftp
24-
mock_sftp.listdir_attr.return_value = [MagicMock(filename="SYNEDI_AGG_INPATIENT_11062020_1451CDT.csv.gz")]
28+
mock_sftp.listdir_attr.return_value = [MagicMock(filename=change_date_format("SYNEDI_AGG_INPATIENT_06112020_1451CDT.csv.gz"))]
2529
def mock_get(*args, **kwargs):
26-
src = Path(f"{TEST_DIR}/test_data/{args[0]}")
27-
dst = Path(f"{TEST_DIR}/receiving/{args[0]}")
30+
file = change_date_format(args[0])
31+
src = Path(f"{TEST_DIR}/test_data/{file}")
32+
dst = Path(f"{TEST_DIR}/receiving/{file}")
2833
shutil.copyfile(src, dst)
2934
mock_sftp.get.side_effect = mock_get
3035

3136
mock_read_params.return_value = params_w_patch
32-
mock_backfill.side_effect = merge_existing_backfill_files
37+
mock_patch_backfill.side_effect = merge_existing_backfill_files
38+
mock_backfill.side_effect = merge_backfill_file
3339

3440
patch()
3541

36-
# assert mock_backfill.assert_called()
42+
assert mock_patch_backfill.call_count == 1
43+
assert mock_backfill.call_count == 0
3744

3845
issue_date = params_w_patch["patch"]["start_issue"].replace("-", "")
3946
assert os.path.isdir(f'{TEST_DIR}/patch_dir/issue_{issue_date}/hospital-admissions')

claims_hosp/tests/test_run.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,43 @@
1-
import logging
2-
from os import listdir
3-
from os.path import join
4-
from itertools import product
1+
from pathlib import Path
2+
from unittest.mock import patch, MagicMock
3+
import shutil
54

6-
import pandas as pd
75
import pytest
6+
from delphi_claims_hosp.download_claims_ftp_files import change_date_format
7+
8+
from delphi_claims_hosp.run import run_module
9+
from delphi_claims_hosp.backfill import merge_existing_backfill_files, merge_backfill_file
10+
from freezegun import freeze_time
811

912
from conftest import TEST_DIR
1013
class TestRun:
11-
@pytest.mark.freeze_time("2020-11-07")
12-
def test_output_files_exist(self, run_as_module):
13-
pass
14+
@freeze_time("2020-06-11 20:00:00")
15+
def test_output_files(self, params):
16+
with patch('delphi_claims_hosp.patch.get_structured_logger'), \
17+
patch('delphi_claims_hosp.download_claims_ftp_files.paramiko.SSHClient') as mock_ssh_client, \
18+
patch('delphi_claims_hosp.download_claims_ftp_files.path.exists', return_value=False), \
19+
patch('delphi_claims_hosp.run.merge_existing_backfill_files') as mock_patch_backfill, \
20+
patch('delphi_claims_hosp.run.merge_backfill_file') as mock_backfill:
21+
22+
mock_ssh_client_instance = MagicMock()
23+
mock_ssh_client.return_value = mock_ssh_client_instance
24+
mock_sftp = MagicMock()
25+
mock_ssh_client_instance.open_sftp.return_value = mock_sftp
26+
mock_sftp.listdir_attr.return_value = [MagicMock(filename="SYNEDI_AGG_INPATIENT_20200611_1451CDT.csv.gz")]
27+
def mock_get(*args, **kwargs):
28+
file = change_date_format(args[0])
29+
src = Path(f"{TEST_DIR}/test_data/{file}")
30+
dst = Path(f"{TEST_DIR}/receiving/{file}")
31+
shutil.copyfile(src, dst)
32+
mock_sftp.get.side_effect = mock_get
33+
34+
mock_patch_backfill.side_effect = merge_existing_backfill_files
35+
mock_backfill.side_effect = merge_backfill_file
36+
37+
run_module(params)
38+
39+
assert mock_patch_backfill.call_count == 0
40+
assert mock_backfill.call_count == 1
41+
42+
# Clean up the created directories after the test
43+
shutil.rmtree(params["common"]["export_dir"])

0 commit comments

Comments
 (0)