[Scons-users] Question over test.must_contain
Bill Deegan
bill at baddogconsulting.com
Tue Jul 4 23:45:25 EDT 2017
What version of python are you running?
-Bill
On Tue, Jul 4, 2017 at 7:30 PM, RW via Scons-users <scons-users at scons.org>
wrote:
> it looks like test/Docbook/dependencies/xinclude/xinclude.py
> is affected by the same error as well
>
> 1/1 (100.00%) /usr/bin/python3 -tt test/Docbook/dependencies/
> xinclude/xinclude.py
> Traceback (most recent call last):
> File "test/Docbook/dependencies/xinclude/xinclude.py", line 47, in
> <module>
> test.must_contain(test.workpath('manual_xi.xml'),'<para>This is an
> included text.')
> File "/home/ric/scons-temp/scons_patched/QMTest/TestCommon.py", line
> 278, in must_contain
> contains = find(file_contents, required)
> File "/home/ric/scons-temp/scons_patched/QMTest/TestCommon.py", line
> 275, in find
> return o.index(l)
> TypeError: a bytes-like object is required, not 'str'
>
> Many Thanks
> Richard
>
> On 4 July 2017 at 14:12, RW <garlicbready at googlemail.com> wrote:
>
>> sorry that should have read
>> "must_contains always deals with text and not binary data which may be
>> incorrect"
>>
>> On 4 July 2017 at 14:06, RW <garlicbready at googlemail.com> wrote:
>>
>>> Hi,
>>> I've noticed another python3 bug / fix
>>>
>>> python3 runtest.py test/Docbook/basic/xinclude/xinclude.py
>>>
>>> 1/1 (100.00%) /usr/bin/python3 -tt test/Docbook/basic/xinclude/xi
>>> nclude.py
>>> Traceback (most recent call last):
>>> File "test/Docbook/basic/xinclude/xinclude.py", line 47, in <module>
>>> test.must_contain(test.workpath('manual_xi.xml'),'<para>This is an
>>> included text.')
>>> File "/home/ric/scons-temp/scons_patched/QMTest/TestCommon.py", line
>>> 278, in must_contain
>>> contains = find(file_contents, required)
>>> File "/home/ric/scons-temp/scons_patched/QMTest/TestCommon.py", line
>>> 275, in find
>>> return o.index(l)
>>> TypeError: a bytes-like object is required, not 'str'
>>>
>>> There's a couple of different ways to fix this
>>>
>>> # Option1
>>> the simplest is to just change
>>>
>>> ```
>>> test.must_contain(test.workpath('manual_xi.xml'),'<para>This is an
>>> included text.')
>>> to
>>> test.must_contain(test.workpath('manual_xi.xml'),'<para>This is an
>>> included text.', mode='r')
>>> ```
>>>
>>> which what the other tests seem to do
>>>
>>> # Option2
>>> To maintain consistency between python versions, another possible option
>>> (maybe at the same time) is to alter the
>>> must_contain function within QMTest/TestCommon.py
>>> However with this approach your assuming must_contains always deals with
>>> binary and not text data which may be incorrect
>>>
>>> ```
>>> import codecs
>>> file_contents = codecs.latin_1_decode(file_contents)[0]
>>> ```
>>>
>>> Would both options or just option 1 be the best way?
>>>
>>> Many Thanks
>>> Richard
>>>
>>>
>>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170704/5e61648d/attachment.html>
More information about the Scons-users
mailing list