Skip to content

Commit 006b45f

Browse files
authored
Merge pull request #200 from derek73/test-scalar-config-attrs-cleanup
Cover initials_separator/suffix_delimiter in autouse CONSTANTS restore
2 parents 0a4fa03 + 809bbc8 commit 006b45f

5 files changed

Lines changed: 22 additions & 41 deletions

File tree

tests/conftest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
"string_format",
1717
"initials_format",
1818
"initials_delimiter",
19+
"initials_separator",
20+
"suffix_delimiter",
1921
"capitalize_name",
2022
"force_mixed_case_capitalization",
2123
)

tests/test_constants.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ def test_clear_removes_all_entries(self) -> None:
9999

100100
def test_empty_attribute_default(self) -> None:
101101
from nameparser.config import CONSTANTS
102-
_orig = CONSTANTS.empty_attribute_default
103102
CONSTANTS.empty_attribute_default = None
104103
hn = HumanName("")
105104
self.m(hn.title, None, hn)
@@ -108,7 +107,6 @@ def test_empty_attribute_default(self) -> None:
108107
self.m(hn.last, None, hn)
109108
self.m(hn.suffix, None, hn)
110109
self.m(hn.nickname, None, hn)
111-
CONSTANTS.empty_attribute_default = _orig
112110

113111
def test_empty_attribute_on_instance(self) -> None:
114112
hn = HumanName("", None)

tests/test_initials.py

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -53,32 +53,22 @@ def test_initials_format(self) -> None:
5353

5454
def test_initials_format_constants(self) -> None:
5555
from nameparser.config import CONSTANTS
56-
_orig = CONSTANTS.initials_format
5756
CONSTANTS.initials_format = "{first} {last}"
5857
hn = HumanName("Doe, John A. Kenneth, Jr.")
5958
self.m(hn.initials(), "J. D.", hn)
6059
CONSTANTS.initials_format = "{first} {last}"
6160
hn = HumanName("Doe, John A. Kenneth, Jr.")
6261
self.m(hn.initials(), "J. D.", hn)
63-
CONSTANTS.initials_format = _orig
6462

6563
def test_initials_delimiter(self) -> None:
6664
hn = HumanName("Doe, John A. Kenneth, Jr.", initials_delimiter=";")
6765
self.m(hn.initials(), "J; A; K; D;", hn)
6866

6967
def test_initials_delimiter_constants(self) -> None:
7068
from nameparser.config import CONSTANTS
71-
_orig = CONSTANTS.initials_delimiter
72-
try:
73-
CONSTANTS.initials_delimiter = ";"
74-
hn = HumanName("Doe, John A. Kenneth, Jr.")
75-
self.m(hn.initials(), "J; A; K; D;", hn)
76-
finally:
77-
CONSTANTS.initials_delimiter = _orig
78-
79-
def test_initials_separator_default_on_constants(self) -> None:
80-
from nameparser.config import CONSTANTS
81-
self.assertEqual(CONSTANTS.initials_separator, " ")
69+
CONSTANTS.initials_delimiter = ";"
70+
hn = HumanName("Doe, John A. Kenneth, Jr.")
71+
self.m(hn.initials(), "J; A; K; D;", hn)
8272

8373
def test_initials_list(self) -> None:
8474
hn = HumanName("Andrew Boris Petersen")
@@ -197,16 +187,15 @@ def test_initials_separator_empty_multi_part_middle(self) -> None:
197187

198188
def test_initials_separator_constants_multi_part_middle(self) -> None:
199189
from nameparser.config import CONSTANTS
200-
_orig_d = CONSTANTS.initials_delimiter
201-
_orig_s = CONSTANTS.initials_separator
202-
_orig_f = CONSTANTS.initials_format
203-
try:
204-
CONSTANTS.initials_delimiter = ""
205-
CONSTANTS.initials_separator = ""
206-
CONSTANTS.initials_format = "{first}{middle}{last}"
207-
hn = HumanName("Doe, John A. Kenneth")
208-
self.m(hn.initials(), "JAKD", hn)
209-
finally:
210-
CONSTANTS.initials_delimiter = _orig_d
211-
CONSTANTS.initials_separator = _orig_s
212-
CONSTANTS.initials_format = _orig_f
190+
CONSTANTS.initials_delimiter = ""
191+
CONSTANTS.initials_separator = ""
192+
CONSTANTS.initials_format = "{first}{middle}{last}"
193+
hn = HumanName("Doe, John A. Kenneth")
194+
self.m(hn.initials(), "JAKD", hn)
195+
196+
def test_initials_separator_default_on_constants(self) -> None:
197+
# Runs after test_initials_separator_constants_multi_part_middle so that,
198+
# in file/definition order, it verifies the autouse fixture restored
199+
# CONSTANTS.initials_separator rather than leaking the "" set above.
200+
from nameparser.config import CONSTANTS
201+
self.assertEqual(CONSTANTS.initials_separator, " ")

tests/test_output_format.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,22 @@ def test_formatting_init_argument(self) -> None:
1212

1313
def test_formatting_constants_attribute(self) -> None:
1414
from nameparser.config import CONSTANTS
15-
_orig = CONSTANTS.string_format
1615
CONSTANTS.string_format = "TEST2"
1716
hn = HumanName("Rev John A. Kenneth Doe III (Kenny)")
1817
self.assertEqual(str(hn), "TEST2")
19-
CONSTANTS.string_format = _orig
2018

2119
def test_capitalize_name_constants_attribute(self) -> None:
2220
from nameparser.config import CONSTANTS
2321
CONSTANTS.capitalize_name = True
2422
hn = HumanName("bob v. de la macdole-eisenhower phd")
2523
self.assertEqual(str(hn), "Bob V. de la MacDole-Eisenhower Ph.D.")
26-
CONSTANTS.capitalize_name = False
2724

2825
def test_force_mixed_case_capitalization_constants_attribute(self) -> None:
2926
from nameparser.config import CONSTANTS
3027
CONSTANTS.force_mixed_case_capitalization = True
3128
hn = HumanName('Shirley Maclaine')
3229
hn.capitalize()
3330
self.assertEqual(str(hn), "Shirley MacLaine")
34-
CONSTANTS.force_mixed_case_capitalization = False
3531

3632
def test_capitalize_name_and_force_mixed_case_capitalization_constants_attributes(self) -> None:
3733
from nameparser.config import CONSTANTS

tests/test_suffixes.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -238,15 +238,11 @@ def test_suffix_delimiter_no_effect_without_comma(self) -> None:
238238

239239
def test_suffix_delimiter_constants_level(self) -> None:
240240
from nameparser.config import CONSTANTS
241-
_orig = CONSTANTS.suffix_delimiter
242-
try:
243-
CONSTANTS.suffix_delimiter = " - "
244-
hn = HumanName("Steven Hardman, RN - CRNA")
245-
self.m(hn.first, "Steven", hn)
246-
self.m(hn.last, "Hardman", hn)
247-
self.m(hn.suffix, "RN, CRNA", hn)
248-
finally:
249-
CONSTANTS.suffix_delimiter = _orig
241+
CONSTANTS.suffix_delimiter = " - "
242+
hn = HumanName("Steven Hardman, RN - CRNA")
243+
self.m(hn.first, "Steven", hn)
244+
self.m(hn.last, "Hardman", hn)
245+
self.m(hn.suffix, "RN, CRNA", hn)
250246

251247
def test_suffix_delimiter_none_by_default_known_limitation(self) -> None:
252248
# Without suffix_delimiter set, " - " between suffixes breaks parsing.

0 commit comments

Comments
 (0)