"""Tests for infra/resume.py — load_processed_identifiers.""" from infra.resume import load_processed_identifiers class TestLoadProcessedIdentifiers: def test_none_path_returns_empty(self): assert load_processed_identifiers(None) == set() def test_nonexistent_file_returns_empty(self): assert load_processed_identifiers('/no/such/file.csv') == set() def test_empty_file_returns_empty(self, tmp_path): path = tmp_path / 'empty.csv' path.write_text('') assert load_processed_identifiers(str(path)) == set() def test_valid_file_returns_identifiers(self, tmp_path): path = tmp_path / 'success.csv' path.write_text( 'Contract ID,Account ID,Contract Name\n1,100,Alpha\n2,200,Beta\n' ) result = load_processed_identifiers(str(path)) assert result == {('100', 'Alpha'), ('200', 'Beta')} def test_skips_rows_missing_account_id(self, tmp_path): path = tmp_path / 'success.csv' path.write_text('Contract ID,Account ID,Contract Name\n1,,Alpha\n2,200,Beta\n') result = load_processed_identifiers(str(path)) assert result == {('200', 'Beta')} def test_skips_rows_missing_contract_name(self, tmp_path): path = tmp_path / 'success.csv' path.write_text('Contract ID,Account ID,Contract Name\n1,100,\n2,200,Beta\n') result = load_processed_identifiers(str(path)) assert result == {('200', 'Beta')} def test_malformed_csv_returns_empty(self, tmp_path): path = tmp_path / 'bad.csv' path.write_bytes(b'\x80\x81\x82') result = load_processed_identifiers(str(path)) assert result == set() def test_missing_columns_returns_empty_set(self, tmp_path): path = tmp_path / 'wrong_cols.csv' path.write_text('Foo,Bar\n1,2\n') result = load_processed_identifiers(str(path)) assert result == set()