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

Cole Robinson crobinso at redhat.com
Fri Mar 29 15:49:59 UTC 2019


On 3/29/19 11:48 AM, Cole Robinson wrote:
> 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
> 

Nevermind I should have checked my libosinfo folder, fabiano sent that
exact followup

- Cole




More information about the Libosinfo mailing list