File tree Expand file tree Collapse file tree 5 files changed +69
-2
lines changed
Expand file tree Collapse file tree 5 files changed +69
-2
lines changed Original file line number Diff line number Diff line change 3434 pybabel compile -d inclusivewriting/locales -D inclusivewriting
3535 coverage run --source=inclusivewriting -m unittest tests.tests
3636 coverage report -m
37+ - name : Validate resource schema
38+ run : |
39+ python -m unittest tests.resource_schema_test
3740 - name : Generate documentation
3841 run : |
3942 rm -rf build/html
Original file line number Diff line number Diff line change @@ -15,8 +15,14 @@ def get_default_locale_encoding():
1515 """
1616 Get default locale information
1717 """
18- default , encoding = locale .getdefaultlocale ()
19- return default , encoding
18+ default_locale , _ = locale .getlocale ()
19+ encoding = locale .getencoding ()
20+
21+ if default_locale is None or default_locale == "" :
22+ default_locale = "en_US"
23+ if encoding is None or encoding == "" :
24+ encoding = "utf-8"
25+ return default_locale , encoding
2026
2127
2228def get_default_locale_message_handler ():
Original file line number Diff line number Diff line change 99"""
1010
1111import unittest
12+ from unittest .mock import patch
1213from inclusivewriting .locale_utils import (
1314 get_default_locale_encoding ,
1415 get_default_locale_message_handler ,
@@ -42,6 +43,16 @@ def test_get_default_locale_encoding(self):
4243 self .assertTrue (language is not None )
4344 self .assertTrue (encoding is not None )
4445
46+ @patch ("inclusivewriting.locale_utils.locale.getencoding" , return_value = None )
47+ @patch ("inclusivewriting.locale_utils.locale.getlocale" , return_value = (None , None ))
48+ def test_get_default_locale_encoding_fallback (self , _ , __ ):
49+ """
50+ Test locale fallback values when system locale details are unavailable.
51+ """
52+ language , encoding = get_default_locale_encoding ()
53+ self .assertEqual (language , "en_US" )
54+ self .assertEqual (encoding , "utf-8" )
55+
4556
4657if __name__ == "__main__" :
4758 unittest .main ()
Original file line number Diff line number Diff line change 1+ #
2+ # SPDX-FileCopyrightText: 2026 John Samuel <johnsamuelwrites@gmail.com>
3+ #
4+ # SPDX-License-Identifier: GPL-3.0-or-later
5+ #
6+
7+ """
8+ Test suite for validating resource schema consistency
9+ """
10+
11+ import json
12+ import unittest
13+
14+ import pkg_resources
15+
16+ from inclusivewriting .configuration import get_all_language_resources
17+ from inclusivewriting .file_utils import read_file
18+ from inclusivewriting .suggestions import _validate_and_build_suggestion
19+
20+
21+ class ResourceSchemaTestSuite (unittest .TestCase ):
22+ """
23+ Test cases for resource schema validation.
24+ """
25+
26+ def test_all_configured_suggestion_resources_are_valid (self ):
27+ """
28+ Validate all configured JSON suggestion resources.
29+ """
30+ resources = get_all_language_resources ("./inclusivewriting/configuration.json" )
31+ for resource_type , resource_files in resources .items ():
32+ if resource_type == "separators" :
33+ continue
34+
35+ for resource_file in resource_files :
36+ path = pkg_resources .resource_filename ("inclusivewriting" , resource_file )
37+ parsed_data = json .loads (read_file (path ))
38+ self .assertTrue (isinstance (parsed_data , dict ))
39+ for key , value in parsed_data .items ():
40+ self .assertTrue (_validate_and_build_suggestion (key , value ) is not None )
41+
42+
43+ if __name__ == "__main__" :
44+ unittest .main ()
Original file line number Diff line number Diff line change 1414from tests .locale_utils_test import LocaleUtilsTestSuite
1515from tests .suggestions_test import SuggestionsTestSuite
1616from tests .cli_test import CliTestSuite
17+ from tests .resource_schema_test import ResourceSchemaTestSuite
1718
1819if __name__ == "__main__" :
1920 unicode_utils_tests = UnicodeUtilsTestSuite ()
2021 file_utils_tests = FileUtilsTestSuite ()
2122 suggestions_tests = SuggestionsTestSuite ()
2223 locales_tests = LocaleUtilsTestSuite ()
2324 cli_tests = CliTestSuite ()
25+ resource_schema_tests = ResourceSchemaTestSuite ()
2426 tests = unittest .TestSuite (
2527 [
2628 unicode_utils_tests ,
2729 file_utils_tests ,
2830 suggestions_tests ,
2931 locales_tests ,
3032 cli_tests ,
33+ resource_schema_tests ,
3134 ]
3235 )
3336 unittest .main ()
You can’t perform that action at this time.
0 commit comments