Problem with duplicity test suite and python 3.7

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with duplicity test suite and python 3.7

duplicity-talk mailing list
I am updating the Mac OS fink installer for duplicity 8.13 and using python 3.7.  It builds fine and seems to run normal backups on my system with no problem.  But in validating duplicity there is an extensive test system.  It seems that the test system aborts without doing all the tests?  I get some failures since my old Mac OS 10.11 system does not have the same unicode definitions as modern systems.  I have seen these 5 test failures since duplicity went unicode.  But I recall a lot more tests than 278, I think it lists 440 in the output below???  And it took a lot longer, with duplicity 0.7X and python 2.7.

Is there a new flag to tell tox to keep going?

Test output:

============================= test session starts ==============================
platform darwin -- Python 3.7.5, pytest-5.1.2, py-1.8.0, pluggy-0.13.0
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/sw/src/fink.build/duplicity-0.8.13-1/duplicity-0.8.13/.hypothesis/examples')
rootdir: /sw/src/fink.build/duplicity-0.8.13-1/duplicity-0.8.13, inifile: tox.ini, testpaths: testing/unit, testing/functional
plugins: hypothesis-4.36.0, expect-1.1.0, mock-1.10.4, requests-mock-1.6.0
collected 440 items
run-last-failure: no previously failed tests, not deselecting items.

testing/unit/test_backend.py ............                                [  2%]
testing/unit/test_backend_instance.py .................................. [ 10%]
..........................ssssssssss                                     [ 18%]
testing/unit/test_collections.py ........                                [ 20%]
testing/unit/test_diffdir.py .......                                     [ 22%]
testing/unit/test_dup_temp.py ..                                         [ 22%]
testing/unit/test_dup_time.py ......................                     [ 27%]
testing/unit/test_file_naming.py .............                           [ 30%]
testing/unit/test_globmatch.py ...........................               [ 36%]
testing/unit/test_gpg.py ..........                                      [ 38%]
testing/unit/test_gpginterface.py ......                                 [ 40%]
testing/unit/test_lazy.py ............................                   [ 46%]
testing/unit/test_manifest.py .....                                      [ 47%]
testing/unit/test_patchdir.py ........                                   [ 49%]
testing/unit/test_path.py .....                                          [ 50%]
testing/unit/test_selection.py ......................................... [ 60%]
........................F

=================================== FAILURES ===================================
________________ ParseArgsTest.test_unicode_paths_non_globbing _________________

self = <testing.unit.test_selection.ParseArgsTest testMethod=test_unicode_paths_non_globbing>

    def test_unicode_paths_non_globbing(self):
        u"""Test functional test test_unicode_paths_non_globbing as a unittest"""
        self.root = Path(u"testfiles/select-unicode")
        self.ParseTest([(u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/Παράδειγμα/उदाहरण.txt"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/Παράδειγμα/דוגמא.txt"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/მაგალითი/"),
                        (u"--include", u"testfiles/select-unicode/прыклад/пример/例/"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/"),
                        (u"--include", u"testfiles/select-unicode/прыклад/"),
                        (u"--include", u"testfiles/select-unicode/օրինակ.txt"),
                        (u"--exclude", u"testfiles/select-unicode/**")],
                       [(), (u"прыклад",), (u"прыклад", u"пример"), (u"прыклад", u"пример", u"例"),
                        (u"прыклад", u"пример", u"例", u"Παράδειγμα"),
                        (u"прыклад", u"пример", u"例", u"Παράδειγμα", u"ઉદાહરણ.log"),
>                       (u"прыклад", u"উদাহরণ"), (u"օրինակ.txt",)])

unit/test_selection.py:889: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
unit/test_selection.py:238: in ParseTest
    self.assertEqual(indicies, results_as_list)
E   AssertionError: Lists differ: [(), [91 chars] 'Παράδειγμα'), ('прыклад', 'пример', '例', 'Πα[60 chars]t',)] != [(), [91 chars] 'Παράδειγμα'), ('прыклад', 'пример', '例', 'Π[175 chars]t',)]
E   
E   First differing element 4:
E   ('прыклад', 'пример', '例', 'Παράδειγμα')
E   ('прыклад', 'пример', '例', 'Παράδειγμα')
E   
E   Second list contains 2 additional elements.
E   First extra element 8:
E   ('прыклад', 'উদাহরণ')
E   
E     [(),
E      ('прыклад',),
E      ('прыклад', 'пример'),
E      ('прыклад', 'пример', '例'),
E   -  ('прыклад', 'пример', '例', 'Παράδειγμα'),
E   ?                                 ^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα'),
E   ?                                 ^^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'דוגמא.txt'),
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'उदाहरण.txt'),
E   -  ('прыклад', 'пример', '例', 'Παράδειγμα', 'ઉદાહરણ.log'),
E   ?                                 ^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'ઉદાહરણ.log'),
E   ?                                 ^^
E   
E      ('прыклад', 'উদাহরণ'),
E      ('օրինակ.txt',)]
============= 1 failed, 278 passed, 10 skipped in 67.15s (0:01:07) =============
### execution of /tmp/fink.Nbmz_ failed, exit code 1
### execution of /tmp/fink.uzupS failed, exit code 1
phase test: warning

I see the 1 failure but previously the system continued on for the remaining tests.  I am somewhat at a loss of how this is all done with the tox testing system.

-Scott





_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: Problem with duplicity test suite and python 3.7

duplicity-talk mailing list
Hi Scott,

Look at the bottom of tox.ini and remove the option "--maxfail=1".  It's been removed in the current code.

...Thanks,
...Ken


On Sun, May 31, 2020 at 6:17 PM Scott Hannahs via Duplicity-talk <[hidden email]> wrote:
I am updating the Mac OS fink installer for duplicity 8.13 and using python 3.7.  It builds fine and seems to run normal backups on my system with no problem.  But in validating duplicity there is an extensive test system.  It seems that the test system aborts without doing all the tests?  I get some failures since my old Mac OS 10.11 system does not have the same unicode definitions as modern systems.  I have seen these 5 test failures since duplicity went unicode.  But I recall a lot more tests than 278, I think it lists 440 in the output below???  And it took a lot longer, with duplicity 0.7X and python 2.7.

Is there a new flag to tell tox to keep going?

Test output:

============================= test session starts ==============================
platform darwin -- Python 3.7.5, pytest-5.1.2, py-1.8.0, pluggy-0.13.0
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/sw/src/fink.build/duplicity-0.8.13-1/duplicity-0.8.13/.hypothesis/examples')
rootdir: /sw/src/fink.build/duplicity-0.8.13-1/duplicity-0.8.13, inifile: tox.ini, testpaths: testing/unit, testing/functional
plugins: hypothesis-4.36.0, expect-1.1.0, mock-1.10.4, requests-mock-1.6.0
collected 440 items
run-last-failure: no previously failed tests, not deselecting items.

testing/unit/test_backend.py ............                                [  2%]
testing/unit/test_backend_instance.py .................................. [ 10%]
..........................ssssssssss                                     [ 18%]
testing/unit/test_collections.py ........                                [ 20%]
testing/unit/test_diffdir.py .......                                     [ 22%]
testing/unit/test_dup_temp.py ..                                         [ 22%]
testing/unit/test_dup_time.py ......................                     [ 27%]
testing/unit/test_file_naming.py .............                           [ 30%]
testing/unit/test_globmatch.py ...........................               [ 36%]
testing/unit/test_gpg.py ..........                                      [ 38%]
testing/unit/test_gpginterface.py ......                                 [ 40%]
testing/unit/test_lazy.py ............................                   [ 46%]
testing/unit/test_manifest.py .....                                      [ 47%]
testing/unit/test_patchdir.py ........                                   [ 49%]
testing/unit/test_path.py .....                                          [ 50%]
testing/unit/test_selection.py ......................................... [ 60%]
........................F

=================================== FAILURES ===================================
________________ ParseArgsTest.test_unicode_paths_non_globbing _________________

self = <testing.unit.test_selection.ParseArgsTest testMethod=test_unicode_paths_non_globbing>

    def test_unicode_paths_non_globbing(self):
        u"""Test functional test test_unicode_paths_non_globbing as a unittest"""
        self.root = Path(u"testfiles/select-unicode")
        self.ParseTest([(u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/Παράδειγμα/उदाहरण.txt"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/Παράδειγμα/דוגמא.txt"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/例/მაგალითი/"),
                        (u"--include", u"testfiles/select-unicode/прыклад/пример/例/"),
                        (u"--exclude", u"testfiles/select-unicode/прыклад/пример/"),
                        (u"--include", u"testfiles/select-unicode/прыклад/"),
                        (u"--include", u"testfiles/select-unicode/օրինակ.txt"),
                        (u"--exclude", u"testfiles/select-unicode/**")],
                       [(), (u"прыклад",), (u"прыклад", u"пример"), (u"прыклад", u"пример", u"例"),
                        (u"прыклад", u"пример", u"例", u"Παράδειγμα"),
                        (u"прыклад", u"пример", u"例", u"Παράδειγμα", u"ઉદાહરણ.log"),
>                       (u"прыклад", u"উদাহরণ"), (u"օրինակ.txt",)])

unit/test_selection.py:889: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
unit/test_selection.py:238: in ParseTest
    self.assertEqual(indicies, results_as_list)
E   AssertionError: Lists differ: [(), [91 chars] 'Παράδειγμα'), ('прыклад', 'пример', '例', 'Πα[60 chars]t',)] != [(), [91 chars] 'Παράδειγμα'), ('прыклад', 'пример', '例', 'Π[175 chars]t',)]
E   
E   First differing element 4:
E   ('прыклад', 'пример', '例', 'Παράδειγμα')
E   ('прыклад', 'пример', '例', 'Παράδειγμα')
E   
E   Second list contains 2 additional elements.
E   First extra element 8:
E   ('прыклад', 'উদাহরণ')
E   
E     [(),
E      ('прыклад',),
E      ('прыклад', 'пример'),
E      ('прыклад', 'пример', '例'),
E   -  ('прыклад', 'пример', '例', 'Παράδειγμα'),
E   ?                                 ^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα'),
E   ?                                 ^^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'דוגמא.txt'),
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'उदाहरण.txt'),
E   -  ('прыклад', 'пример', '例', 'Παράδειγμα', 'ઉદાહરણ.log'),
E   ?                                 ^
E   
E   +  ('прыклад', 'пример', '例', 'Παράδειγμα', 'ઉદાહરણ.log'),
E   ?                                 ^^
E   
E      ('прыклад', 'উদাহরণ'),
E      ('օրինակ.txt',)]
============= 1 failed, 278 passed, 10 skipped in 67.15s (0:01:07) =============
### execution of /tmp/fink.Nbmz_ failed, exit code 1
### execution of /tmp/fink.uzupS failed, exit code 1
phase test: warning

I see the 1 failure but previously the system continued on for the remaining tests.  I am somewhat at a loss of how this is all done with the tox testing system.

-Scott




_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk

_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk
Reply | Threaded
Open this post in threaded view
|

Re: Problem with duplicity test suite and python 3.7

duplicity-talk mailing list
Ken,

Thanks!!!  I like simple solutions!  Worked perfectly.

-Scott


> On May 31, 2020, at 7:36 PM, Kenneth Loafman <[hidden email]> wrote:
>
> Hi Scott,
>
> Look at the bottom of tox.ini and remove the option "--maxfail=1".  It's been removed in the current code.
>
> ...Thanks,
> ...Ken
>


_______________________________________________
Duplicity-talk mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/duplicity-talk