Esempio n. 1
0
def test_libfv_set_gitsha1_both_dev_release_error(capsys):
    fv = FontVersion("tests/testfiles/Test-VersionMeta.ttf")
    with pytest.raises(ValueError) as pytest_wrapped_e:
        fv.set_state_git_commit_sha1(release=True, development=True)

    out, err = capsys.readouterr()
    assert pytest_wrapped_e.type == ValueError
Esempio n. 2
0
def test_libfv_get_version_number_string_bad_version_number():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")

    with pytest.raises(ValueError):
        # mock a bad version number substring
        fv.set_version_number("x.xxx")

    assert fv.get_version_number_string() == ""
Esempio n. 3
0
def test_libfv_set_version_number_invalid_number(allfonts):
    fv = FontVersion(allfonts)

    with pytest.raises(ValueError):
        # mock a bad version number substring
        fv.set_version_number("x.xxx")
        response = fv.get_version_number_string()
        assert len(response) == 0
Esempio n. 4
0
def test_libfv_fontversion_object_versionparts_meta_lists_versionstring_only():
    fv1 = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")

    assert len(fv1.version_string_parts) == 1
    assert len(fv1.metadata) == 0

    assert len(fv2.version_string_parts) == 1
    assert len(fv2.metadata) == 0
Esempio n. 5
0
def test_libfv_fontversion_object_properties_truth_state_versionstring_only():
    fv1 = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")

    assert fv1.contains_state is False
    assert fv2.contains_state is False

    assert len(fv1.state) == 0
    assert len(fv2.state) == 0
Esempio n. 6
0
def test_libfv_fontversion_object_inequality(allfonts):
    fv1 = FontVersion(allfonts)
    fv2 = FontVersion(allfonts)
    fv3 = FontVersion(allfonts)
    fv3.version_string_parts[0] = "Version 12.000"
    assert (fv1 != fv2) is False
    assert fv1 != fv3
    assert fv1 != "test string"
    assert fv1 != fv1.version_string_parts
Esempio n. 7
0
def test_libfv_set_version_number(allfonts):
    fv = FontVersion(allfonts)
    prelength = len(fv.version_string_parts)
    fv.set_version_number("2.000")
    postlength = len(fv.version_string_parts)
    assert prelength == postlength
    assert fv.version_string_parts[0] == "Version 2.000"
    assert fv.version == "Version 2.000"
    assert fv.head_fontRevision == 2.000
Esempio n. 8
0
def test_libfv_fontversion_object_properties_truth_defaults():
    fv1 = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")
    assert fv1.contains_metadata is False
    assert fv1.contains_status is False
    assert fv1.is_development is False
    assert fv1.is_release is False

    assert fv2.contains_metadata is False
    assert fv2.contains_status is False
    assert fv2.is_development is False
    assert fv2.is_release is False
Esempio n. 9
0
def test_libfv_set_release_method_on_development(devfonts):
    fv = FontVersion(devfonts)
    prelength = len(fv.version_string_parts)
    fv.set_release_status()
    postlength = len(fv.version_string_parts)
    assert prelength == postlength
    assert fv.version_string_parts[0] == "Version 1.010"
    assert fv.version_string_parts[1] == "RELEASE"
    assert fv.is_development is False
    assert fv.is_release is True
    assert fv.contains_status is True
    assert fv.contains_metadata is True
Esempio n. 10
0
def test_libfv_set_release_gitsha1_method(allfonts):
    fv = FontVersion(allfonts)
    fv.set_state_git_commit_sha1(release=True)
    sha_needle = fv.version_string_parts[1]
    assert _test_hexadecimal_sha1_formatted_string_matches(
        sha_needle) is True  # confirm that set with state label
    assert _test_hexadecimal_sha1_string_matches(
        fv.state) is True  # confirm that state property is properly set
    assert ("-dev" in sha_needle) is False
    assert ("-release" in sha_needle) is True
    assert ("DEV" in sha_needle) is False
    assert ("RELEASE" in sha_needle) is False
Esempio n. 11
0
def test_libfv_set_release_method_on_nostatus(metafonts):
    fv = FontVersion(metafonts)
    prelength = len(fv.version_string_parts)
    fv.set_release_status()
    postlength = len(fv.version_string_parts)
    assert prelength == (
        postlength - 1
    )  # should add an additional substring to the version string here
    assert fv.version_string_parts[0] == "Version 1.010"
    assert fv.version_string_parts[1] == "RELEASE"
    assert fv.is_development is False
    assert fv.is_release is True
    assert fv.contains_status is True
    assert fv.contains_metadata is True
Esempio n. 12
0
def test_libfv_fontversion_object_properties_truth_state_meta_without_state():
    fv1 = FontVersion("tests/testfiles/Test-VersionMeta.ttf")
    fv2 = FontVersion("tests/testfiles/Test-VersionMeta.otf")
    fv3 = FontVersion("tests/testfiles/Test-VersionMoreMeta.ttf")
    fv4 = FontVersion("tests/testfiles/Test-VersionMoreMeta.otf")

    assert fv1.contains_state is False
    assert fv2.contains_state is False
    assert fv3.contains_state is False
    assert fv4.contains_state is False

    assert len(fv1.state) == 0
    assert len(fv2.state) == 0
    assert len(fv3.state) == 0
    assert len(fv4.state) == 0
Esempio n. 13
0
def test_libfv_fontversion_object_versionparts_meta_lists_version_with_onemeta(
):
    fv1 = FontVersion("tests/testfiles/Test-VersionMeta.ttf")
    assert len(fv1.version_string_parts) == 2
    assert fv1.version_string_parts[0] == "Version 1.010"
    assert fv1.version_string_parts[1] == "metadata string"
    assert len(fv1.metadata) == 1
    assert fv1.metadata[0] == "metadata string"

    fv2 = FontVersion("tests/testfiles/Test-VersionMeta.otf")
    assert len(fv2.version_string_parts) == 2
    assert fv2.version_string_parts[0] == "Version 1.010"
    assert fv2.version_string_parts[1] == "metadata string"
    assert len(fv2.metadata) == 1
    assert fv2.metadata[0] == "metadata string"
Esempio n. 14
0
def test_libfv_fontversion_obj_instantiation_with_ttfont_object(allfonts):
    ttf = TTFont(allfonts)
    fv1 = FontVersion(ttf)
    fv2 = FontVersion(allfonts)
    assert fv1.fontpath == fv2.fontpath
    assert fv1.version_string_parts == fv2.version_string_parts
    assert fv1.develop_string == fv2.develop_string
    assert fv1.release_string == fv2.release_string
    assert fv1.sha1_develop == fv2.sha1_develop
    assert fv1.sha1_release == fv2.sha1_release
    assert fv1.version == fv2.version
    assert fv1.metadata == fv2.metadata
    assert fv1.contains_status == fv2.contains_status
    assert fv1.contains_metadata == fv2.contains_metadata
    assert fv1.is_release == fv2.is_release
    assert fv1.is_development == fv2.is_development
Esempio n. 15
0
def test_libfv_fontversion_object_properties_truth_defaults_with_metaonly(
        metafonts):
    fv = FontVersion(metafonts)
    assert fv.contains_metadata is True
    assert fv.contains_status is False
    assert fv.is_development is False
    assert fv.is_release is False
Esempio n. 16
0
def test_libfv_is_state_substring_return_match_invalid():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "abcd123")
    assert is_state_substring is False
    assert state_substring == ""

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "{abcd123}")
    assert is_state_substring is False
    assert state_substring == ""

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "[&%$#@!]")
    assert is_state_substring is False
    assert state_substring == ""
Esempio n. 17
0
def test_libfv_fontversion_object_parameter_properties_defaults_ttfont_object(
        allfonts):
    ttf = TTFont(allfonts)
    fv = FontVersion(ttf)
    assert fv.develop_string == "DEV"
    assert fv.release_string == "RELEASE"
    assert fv.sha1_develop == "-dev"
    assert fv.sha1_release == "-release"
Esempio n. 18
0
def test_libfv_fontversion_object_properties_truth_release_ttfont_object(
        relfonts):
    ttf = TTFont(relfonts)
    fv = FontVersion(ttf)
    assert fv.contains_metadata is True
    assert fv.contains_status is True
    assert fv.is_development is False
    assert fv.is_release is True
Esempio n. 19
0
def test_libfv_is_state_substring_return_match_valid():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "[abcd123]")
    assert is_state_substring is True
    assert state_substring == "abcd123"

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "[abcd123]-dev")
    assert is_state_substring is True
    assert state_substring == "abcd123"

    is_state_substring, state_substring = fv._is_state_substring_return_state_match(
        "[abcd123]-release")
    assert is_state_substring is True
    assert state_substring == "abcd123"
Esempio n. 20
0
def test_libfv_fontversion_object_versionparts_meta_lists_version_with_twometa(
):
    fv = FontVersion("tests/testfiles/Test-VersionMoreMeta.ttf")
    assert len(fv.version_string_parts) == 3
    assert fv.version_string_parts[0] == "Version 1.010"
    assert fv.version_string_parts[1] == "metadata string"
    assert fv.version_string_parts[2] == "another metadata string"
    assert len(fv.metadata) == 2
    assert fv.metadata[0] == "metadata string"
    assert fv.metadata[1] == "another metadata string"

    fv2 = FontVersion("tests/testfiles/Test-VersionMoreMeta.otf")
    assert len(fv2.version_string_parts) == 3
    assert fv2.version_string_parts[0] == "Version 1.010"
    assert fv2.version_string_parts[1] == "metadata string"
    assert fv2.version_string_parts[2] == "another metadata string"
    assert len(fv2.metadata) == 2
    assert fv2.metadata[0] == "metadata string"
    assert fv2.metadata[1] == "another metadata string"
Esempio n. 21
0
def test_libfv_set_version_string_one_substring():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv.set_version_string("Version 2.000")
    assert len(fv.version_string_parts) == 1
    assert fv.version_string_parts[0] == "Version 2.000"
    assert fv.version == "Version 2.000"
    assert fv.head_fontRevision == 2.000

    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")
    fv2.set_version_string("Version 2.000")
    assert len(fv2.version_string_parts) == 1
    assert fv2.version_string_parts[0] == "Version 2.000"
    assert fv2.version == "Version 2.000"
    assert fv2.head_fontRevision == 2.000
Esempio n. 22
0
def test_libfv_fontversion_object_versionparts_meta_lists_version_with_twometa_ttfont_object(
):
    ttf1 = TTFont("tests/testfiles/Test-VersionMoreMeta.ttf")

    fv1 = FontVersion(ttf1)
    assert len(fv1.version_string_parts) == 3
    assert fv1.version_string_parts[0] == "Version 1.010"
    assert fv1.version_string_parts[1] == "metadata string"
    assert fv1.version_string_parts[2] == "another metadata string"
    assert len(fv1.metadata) == 2
    assert fv1.metadata[0] == "metadata string"
    assert fv1.metadata[1] == "another metadata string"

    ttf2 = TTFont("tests/testfiles/Test-VersionMoreMeta.otf")

    fv2 = FontVersion(ttf2)
    assert len(fv2.version_string_parts) == 3
    assert fv2.version_string_parts[0] == "Version 1.010"
    assert fv2.version_string_parts[1] == "metadata string"
    assert fv2.version_string_parts[2] == "another metadata string"
    assert len(fv2.metadata) == 2
    assert fv2.metadata[0] == "metadata string"
    assert fv2.metadata[1] == "another metadata string"
Esempio n. 23
0
def test_libfv_set_version_string_three_substrings():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv.set_version_string("Version 2.000;DEV;other stuff")
    assert len(fv.version_string_parts) == 3
    assert fv.version_string_parts[0] == "Version 2.000"
    assert fv.version_string_parts[1] == "DEV"
    assert fv.version_string_parts[2] == "other stuff"
    assert fv.version == "Version 2.000"
    assert fv.head_fontRevision == 2.000

    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")
    fv2.set_version_string("Version 2.000;DEV;other stuff")
    assert len(fv2.version_string_parts) == 3
    assert fv2.version_string_parts[0] == "Version 2.000"
    assert fv2.version_string_parts[1] == "DEV"
    assert fv2.version_string_parts[2] == "other stuff"
    assert fv2.version == "Version 2.000"
    assert fv2.head_fontRevision == 2.000
Esempio n. 24
0
def test_libfv_set_release_method_on_versiononly():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    assert len(fv.version_string_parts) == 1
    fv.set_release_status()
    assert len(fv.version_string_parts) == 2
    assert fv.version_string_parts[0] == "Version 1.010"
    assert fv.version_string_parts[1] == "RELEASE"
    assert fv.is_development is False
    assert fv.is_release is True
    assert fv.contains_status is True
    assert fv.contains_metadata is True

    fv2 = FontVersion("tests/testfiles/Test-VersionOnly.otf")
    assert len(fv2.version_string_parts) == 1
    fv2.set_release_status()
    assert len(fv2.version_string_parts) == 2
    assert fv2.version_string_parts[0] == "Version 1.010"
    assert fv2.version_string_parts[1] == "RELEASE"
    assert fv2.is_development is False
    assert fv2.is_release is True
    assert fv2.contains_status is True
    assert fv2.contains_metadata is True
Esempio n. 25
0
def test_libfv_get_status_method_release(relfonts):
    fv = FontVersion(relfonts)
    status_string = fv.get_state_status_substring()
    assert status_string == fv.version_string_parts[1]
Esempio n. 26
0
def test_libfv_get_status_method_nostatus(metafonts):
    fv = FontVersion(metafonts)
    status_string = fv.get_state_status_substring()
    assert status_string == ""
Esempio n. 27
0
def test_libfv_get_version_number_string(allfonts):
    fv = FontVersion(allfonts)
    assert fv.get_version_number_string() == "1.010"
Esempio n. 28
0
def test_libfv_set_gitsha1_bad_parameters_raises_valueerror(allfonts):
    with pytest.raises(ValueError):
        fv = FontVersion(allfonts)
        fv.set_state_git_commit_sha1(development=True, release=True)
Esempio n. 29
0
def test_libfv_get_version_number_tuple():
    fv = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    assert fv.get_version_number_tuple() == (1, 0, 1, 0)

    # mock new version numbers in memory and confirm that they are correct in tuples
    fv.version = "Version 1.1"
    assert fv.get_version_number_tuple() == (1, 1)
    fv.version = "Version 1.01"
    assert fv.get_version_number_tuple() == (1, 0, 1)
    fv.version = "Version 1.001"
    assert fv.get_version_number_tuple() == (1, 0, 0, 1)
    fv.version = "Version 10.1"
    assert fv.get_version_number_tuple() == (10, 1)
    fv.version = "Version 10.01"
    assert fv.get_version_number_tuple() == (10, 0, 1)
    fv.version = "Version 10.001"
    assert fv.get_version_number_tuple() == (10, 0, 0, 1)
    fv.version = "Version 100.001"
    assert fv.get_version_number_tuple() == (100, 0, 0, 1)
Esempio n. 30
0
def test_libfv_get_name_id5_version_string_method():
    fv1 = FontVersion("tests/testfiles/Test-VersionOnly.ttf")
    fv2 = FontVersion("tests/testfiles/Test-VersionMeta.ttf")
    fv3 = FontVersion("tests/testfiles/Test-VersionMoreMeta.ttf")
    assert fv1.get_name_id5_version_string() == "Version 1.010"
    assert fv2.get_name_id5_version_string() == "Version 1.010;metadata string"
    assert fv3.get_name_id5_version_string(
    ) == "Version 1.010;metadata string;another metadata string"

    fv4 = FontVersion("tests/testfiles/Test-VersionOnly.otf")
    fv5 = FontVersion("tests/testfiles/Test-VersionMeta.otf")
    fv6 = FontVersion("tests/testfiles/Test-VersionMoreMeta.otf")
    assert fv4.get_name_id5_version_string() == "Version 1.010"
    assert fv5.get_name_id5_version_string() == "Version 1.010;metadata string"
    assert fv6.get_name_id5_version_string(
    ) == "Version 1.010;metadata string;another metadata string"