from mrrc import Leader
class TestLeaderValidValuesPosition5:
def test_get_valid_values_position_5(self):
leader = Leader()
values = leader.get_valid_values(5)
assert isinstance(values, dict)
assert len(values) > 0
assert "a" in values
assert "n" in values
def test_record_status_values_mapped_correctly(self):
leader = Leader()
values = leader.get_valid_values(5)
assert values["a"] == "Increase in encoding level"
assert values["c"] == "Corrected or revised"
assert values["d"] == "Deleted"
assert values["n"] == "New"
assert values["p"] == "Increase in encoding level from prepublication"
def test_describe_value_position_5(self):
desc = Leader.describe_value(5, "a")
assert desc == "Increase in encoding level"
desc = Leader.describe_value(5, "n")
assert desc == "New"
def test_describe_invalid_value_position_5(self):
desc = Leader.describe_value(5, "x")
assert desc is None
class TestLeaderValidValuesPosition6:
def test_get_valid_values_position_6(self):
leader = Leader()
values = leader.get_valid_values(6)
assert len(values) > 0
assert "a" in values
assert "m" in values
def test_record_type_values_mapped_correctly(self):
leader = Leader()
values = leader.get_valid_values(6)
assert values["a"] == "Language material"
assert values["c"] == "Notated music"
assert values["m"] == "Computer file"
assert values["t"] == "Manuscript language material"
def test_describe_value_position_6(self):
assert Leader.describe_value(6, "a") == "Language material"
assert Leader.describe_value(6, "t") == "Manuscript language material"
class TestLeaderValidValuesPosition7:
def test_get_valid_values_position_7(self):
leader = Leader()
values = leader.get_valid_values(7)
assert len(values) > 0
assert "m" in values
assert "s" in values
def test_bibliographic_level_values_mapped_correctly(self):
values = Leader.get_valid_values(7)
assert values["a"] == "Monographic component part"
assert values["b"] == "Serial component part"
assert values["m"] == "Monograph/Item"
assert values["s"] == "Serial"
assert values["i"] == "Integrating resource"
def test_describe_value_position_7(self):
assert Leader.describe_value(7, "m") == "Monograph/Item"
assert Leader.describe_value(7, "s") == "Serial"
class TestLeaderValidValuesPosition8:
def test_get_valid_values_position_8(self):
values = Leader.get_valid_values(8)
assert "#" in values
assert "a" in values
def test_type_of_control_values_mapped_correctly(self):
values = Leader.get_valid_values(8)
assert values["#"] == "No specified type"
assert values["a"] == "Archival"
def test_describe_value_position_8(self):
assert Leader.describe_value(8, "#") == "No specified type"
assert Leader.describe_value(8, "a") == "Archival"
class TestLeaderValidValuesPosition9:
def test_get_valid_values_position_9(self):
values = Leader.get_valid_values(9)
assert " " in values
assert "a" in values
def test_character_coding_values_mapped_correctly(self):
values = Leader.get_valid_values(9)
assert values[" "] == "MARC-8"
assert values["a"] == "UCS/Unicode"
def test_describe_value_position_9(self):
assert Leader.describe_value(9, " ") == "MARC-8"
assert Leader.describe_value(9, "a") == "UCS/Unicode"
class TestLeaderValidValuesPosition17:
def test_get_valid_values_position_17(self):
values = Leader.get_valid_values(17)
assert len(values) > 0
assert " " in values
assert "8" in values
def test_encoding_level_values_mapped_correctly(self):
values = Leader.get_valid_values(17)
assert values[" "] == "Full level"
assert values["3"] == "Abbreviated level"
assert values["8"] == "Prepublication level"
def test_describe_value_position_17(self):
assert Leader.describe_value(17, " ") == "Full level"
assert Leader.describe_value(17, "8") == "Prepublication level"
class TestLeaderValidValuesPosition18:
def test_get_valid_values_position_18(self):
values = Leader.get_valid_values(18)
assert " " in values
assert "a" in values
def test_cataloging_form_values_mapped_correctly(self):
values = Leader.get_valid_values(18)
assert values[" "] == "Non-ISBD"
assert values["a"] == "AACR 2"
assert values["c"] == "ISBD punctuation omitted"
assert values["i"] == "ISBD punctuation included"
assert values["n"] == "Non-ISBD punctuation omitted"
def test_describe_value_position_18(self):
assert Leader.describe_value(18, " ") == "Non-ISBD"
assert Leader.describe_value(18, "a") == "AACR 2"
assert Leader.describe_value(18, "i") == "ISBD punctuation included"
class TestLeaderValidValuesPosition19:
def test_get_valid_values_position_19(self):
values = Leader.get_valid_values(19)
assert " " in values
assert "a" in values
def test_multipart_level_values_mapped_correctly(self):
values = Leader.get_valid_values(19)
assert values[" "] == "Not specified or not applicable"
assert values["a"] == "Set"
assert values["b"] == "Part with independent title"
def test_describe_value_position_19(self):
assert (
Leader.describe_value(19, " ") == "Not specified or not applicable"
)
assert Leader.describe_value(19, "a") == "Set"
class TestLeaderValidValuesInvalidPosition:
def test_get_valid_values_invalid_position(self):
values = Leader.get_valid_values(0)
assert values is None
values = Leader.get_valid_values(99)
assert values is None
def test_describe_value_invalid_position(self):
desc = Leader.describe_value(0, "a")
assert desc is None
desc = Leader.describe_value(99, "x")
assert desc is None
class TestLeaderValueValidationIntegration:
def test_set_and_describe_record_status(self):
leader = Leader()
leader.record_status = "a"
assert leader.record_status == "a"
desc = Leader.describe_value(5, leader.record_status)
assert desc == "Increase in encoding level"
def test_set_and_describe_record_type(self):
leader = Leader()
leader.record_type = "t"
assert leader.record_type == "t"
desc = Leader.describe_value(6, leader.record_type)
assert desc == "Manuscript language material"
def test_set_and_describe_bibliographic_level(self):
leader = Leader()
leader.bibliographic_level = "s"
assert leader.bibliographic_level == "s"
desc = Leader.describe_value(7, leader.bibliographic_level)
assert desc == "Serial"
def test_describe_all_valid_values_position_5(self):
valid_values = Leader.get_valid_values(5)
for value in valid_values.keys():
desc = Leader.describe_value(5, value)
assert desc is not None
assert desc == valid_values[value]
def test_describe_all_valid_values_position_6(self):
valid_values = Leader.get_valid_values(6)
for value in valid_values.keys():
desc = Leader.describe_value(6, value)
assert desc is not None
assert desc == valid_values[value]
class TestLeaderStaticMethods:
def test_static_method_access(self):
values = Leader.get_valid_values(5)
assert len(values) > 0
desc = Leader.describe_value(5, "n")
assert desc == "New"
def test_instance_method_access(self):
leader = Leader()
values = leader.get_valid_values(5)
assert len(values) > 0
def test_describe_value_static_method(self):
leader = Leader()
desc = leader.describe_value(5, "n")
assert desc == "New"
class TestLeaderAPICompatibility:
def test_leader_values_not_regress_existing_api(self):
leader = Leader()
leader.record_status = "a"
assert leader.record_status == "a"
leader.record_type = "t"
assert leader.record_type == "t"
leader.bibliographic_level = "m"
assert leader.bibliographic_level == "m"
def test_descriptor_returns_consistent_data(self):
desc1 = Leader.describe_value(5, "a")
desc2 = Leader.describe_value(5, "a")
assert desc1 == desc2
def test_valid_values_dict_format(self):
values = Leader.get_valid_values(5)
assert isinstance(values, dict)
for key, val in values.items():
assert isinstance(key, str)
assert isinstance(val, str)
class TestLeaderDocumentation:
def test_get_valid_values_docstring(self):
leader = Leader()
assert leader.get_valid_values.__doc__ is not None
assert len(leader.get_valid_values.__doc__) > 0
def test_describe_value_docstring(self):
assert Leader.describe_value.__doc__ is not None
assert len(Leader.describe_value.__doc__) > 0