[Libosinfo] [PATCH osinfo-db 3/3] tests: conftest: set locale in test code

Cole Robinson crobinso at redhat.com
Fri Mar 29 15:48:50 UTC 2019


On 3/29/19 5:52 AM, Daniel P. Berrangé wrote:
> On Thu, Mar 28, 2019 at 04:55:34PM -0400, Cole Robinson wrote:
>> This fixes the locale setup with direct pytest-3 invocations
>>
>> Signed-off-by: Cole Robinson <crobinso at redhat.com>
>> ---
>>  Makefile          | 2 +-
>>  tests/conftest.py | 4 ++++
>>  2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/Makefile b/Makefile
>> index b3e06d5..4f6f8d4 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -121,4 +121,4 @@ update-po:
>>          done
>>  
>>  check: $(DATA_FILES) $(SCHEMA_FILES)
>> -	LC_ALL= LANG=C LC_CTYPE=en_US.UTF-8 $(PYTHON) -m pytest
>> +	$(PYTHON) -m pytest
>> diff --git a/tests/conftest.py b/tests/conftest.py
>> index 4a16a04..ade36c5 100644
>> --- a/tests/conftest.py
>> +++ b/tests/conftest.py
>> @@ -1,6 +1,7 @@
>>  # This work is licensed under the GNU GPLv2 or later.
>>  # See the COPYING file in the top-level directory.
>>  
>> +import locale
>>  import os
>>  
>>  
>> @@ -16,6 +17,9 @@ def pytest_configure(config):
>>          os.environ[key] = os.path.realpath(os.path.join(
>>              os.path.dirname(__file__), "..", "data"))
>>  
>> +    # Needed for test reproducibility on freebsd
>> +    locale.setlocale(locale.LC_CTYPE, 'en_US.UTF-8')
> 
> This doesn't actually do the same as the makefile code. This still uses
> the user's own locale for everything that isn't LC_CTYPE. The make code
> explicitly forced C locale to ensure reproducable environment that does
> not vary per user locale.
> 

Okay I think prepending locale.setlocale(locale.LC_ALL, 'C') will
accomplish the same though I don't really know the details of how it
propagates through the stack. Does that sound okay + fixing the comment?
Fabiano pushed the patch so I can send a follow up

The main goal is to avoid the need to run with an environment variable
so direct pytest invocation is as valid as 'make check'. The former
gives much more flexibility

- Cole




More information about the Libosinfo mailing list