def test_get_urls(self, monkeypatch, url): daily_filing = DailyFilings(datetime(2018, 12, 31)) monkeypatch.setattr(DailyFilings, "_get_quarterly_directory", MockQuarterDirectory) monkeypatch.setattr(DailyFilings, "_get_master_idx_file", mock_master_idx_file) assert url in daily_filing.get_urls()
def test_save_with_single_level_cik_dir_pattern( self, tmp_data_directory, mock_daily_quarter_directory, mock_daily_idx_file, mock_filing_response, cik, file): daily_filing = DailyFilings(date(2018, 12, 31)) daily_filing.save(tmp_data_directory, dir_pattern="{cik}") path_to_check = os.path.join(tmp_data_directory, cik, file) assert os.path.exists(path_to_check)
def test_get_quarterly_directory(self, monkeypatch): monkeypatch.setattr(DailyFilings, "_get_quarterly_directory", MockQuarterDirectory) assert DailyFilings(datetime( 2018, 12, 31))._get_quarterly_directory().status_code == 200 assert "master.20181231.idx" in DailyFilings(datetime( 2018, 12, 31))._get_quarterly_directory().text
def test_save_default(self, tmp_data_directory, mock_daily_quarter_directory, mock_daily_idx_file, mock_filing_response, cik, file): daily_filing = DailyFilings(date(2018, 12, 31)) daily_filing.save(tmp_data_directory) subdir = os.path.join("20181231", cik) path_to_check = os.path.join(tmp_data_directory, subdir, file) assert os.path.exists(path_to_check)
def test_get_master_idx_file(self, monkeypatch, company_name): daily_filing = DailyFilings(datetime(2018, 12, 31)) monkeypatch.setattr(DailyFilings, "_get_quarterly_directory", MockQuarterDirectory) monkeypatch.setattr(DailyFilings, "_get_master_idx_file", mock_master_idx_file) # All company names above should be in file assert company_name in daily_filing._get_master_idx_file()
def test_save_with_single_level_date_dir_pattern( self, tmp_data_directory, mock_daily_quarter_directory, mock_daily_idx_file, mock_filing_response, file): daily_filing = DailyFilings(date(2018, 12, 31)) daily_filing.save(tmp_data_directory, dir_pattern="{date}", date_format="%Y-%m-%d") path_to_check = os.path.join(tmp_data_directory, "2018-12-31", file) assert os.path.exists(path_to_check)
def test_save(self, tmp_data_directory, monkeypatch, subdir, file): daily_filing = DailyFilings(datetime(2018, 12, 31)) monkeypatch.setattr(DailyFilings, "_get_quarterly_directory", MockQuarterDirectory) monkeypatch.setattr(DailyFilings, '_get_master_idx_file', mock_master_idx_file) monkeypatch.setattr(requests, 'get', MockFilingData) daily_filing.save(tmp_data_directory) path_to_check = os.path.join(tmp_data_directory, subdir, file) assert os.path.exists(path_to_check)
def test_save_with_multi_level_dir_pattern_date_not_first( self, tmp_data_directory, mock_daily_quarter_directory, mock_daily_idx_file, mock_filing_response, cik, file): daily_filing = DailyFilings(date(2018, 12, 31)) daily_filing.save(tmp_data_directory, dir_pattern="{cik}/{date}", date_format="%Y-%m-%d") subdir = os.path.join(cik, "2018-12-31") path_to_check = os.path.join(tmp_data_directory, subdir, file) assert os.path.exists(path_to_check)
def test_get_master_idx_file(self, mock_daily_quarter_directory, mock_daily_idx_file, company_name): daily_filing = DailyFilings(date(2018, 12, 31)) # All company names above should be in file assert company_name in daily_filing._get_master_idx_file()
def test_get_listings_directory(self, mock_daily_quarter_directory): assert DailyFilings(date( 2018, 12, 31))._get_listings_directory().status_code == 200 assert "master.20181231.idx" in DailyFilings(date( 2018, 12, 31))._get_listings_directory().text
def test_get_urls(self, mock_daily_quarter_directory, mock_daily_idx_file, key, url): daily_filing = DailyFilings(date(2018, 12, 31)) assert url in daily_filing.get_urls()[key]
def test_bad_date_format_fails(self, bad_date): with pytest.raises(TypeError): DailyFilings(bad_date)
def test_idx_filename(self, date, expected_filename): assert DailyFilings(date=date).idx_filename == expected_filename
def test_quarter(self, date, expected): assert DailyFilings(date=date).quarter == expected
def test_no_params(self): daily_filing = DailyFilings(datetime(2020, 1, 1)) # params should always be empty assert not daily_filing.params
def test_path_property(self, year, month, day, quarter): daily_filing = DailyFilings(date(year, month, day)) assert daily_filing.path == "Archives/edgar/daily-index/{year}/QTR{quarter}/".format( year=year, quarter=quarter)
def test_no_params(self): """Params should always be empty.""" daily_filing = DailyFilings(date(2020, 1, 1)) assert not daily_filing.params
def test_master_idx_date_format(self, date_tuple, formatted): daily_filing = DailyFilings(date(*date_tuple)) assert daily_filing._get_idx_formatted_date() == formatted