Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added FreeBSD CI support #636

Merged
merged 1 commit into from
Feb 6, 2020

Conversation

BoboTiG
Copy link
Collaborator

@BoboTiG BoboTiG commented Feb 6, 2020

Closes #532.

@BoboTiG BoboTiG added the kqueue label Feb 6, 2020
@BoboTiG BoboTiG force-pushed the feat-issue-532-freebsd-ci branch 5 times, most recently from 6a7bd09 to ecc0aee Compare February 6, 2020 15:18
@BoboTiG BoboTiG changed the title [WIP] Added FreeBSD CI support Added FreeBSD CI support Feb 6, 2020
@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Feb 6, 2020

So this seems to work fine :)
There are issues in tests, but this is not the goal of the PR (it is only 2 different errors that generate the noise, maybe other issues will be seen later). The only need now, is to enable Cirrus-CI on the repository. As it may not be done now (as nobody has enough rights to do so), I propose to merge. I will use my own account to track things and anyone will be able to create a free account on Cirrus-CI to check on their own fork.

@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Feb 6, 2020

What do you think @evilham? The FreeBSD version is OK for you? Available versions are here: https://cirrus-ci.org/guide/FreeBSD/

@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Feb 6, 2020

FTR current failures are:

==================================== ERRORS ====================================
_______________________ ERROR at teardown of test_create _______________________
tmpdir = '/tmp/tmpmbqkrk4a'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpmbqkrk4a'
tests/test_emitter.py:68: NameError
_______________________ ERROR at teardown of test_delete _______________________
tmpdir = '/tmp/tmp5b5gg2yc'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp5b5gg2yc'
tests/test_emitter.py:68: NameError
_______________________ ERROR at teardown of test_modify _______________________
tmpdir = '/tmp/tmp_z3hak6a'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp_z3hak6a'
tests/test_emitter.py:68: NameError
________________________ ERROR at teardown of test_move ________________________
tmpdir = '/tmp/tmpb1arsmyp'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpb1arsmyp'
tests/test_emitter.py:68: NameError
______________________ ERROR at teardown of test_move_to _______________________
tmpdir = '/tmp/tmpuwqqk7tu'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpuwqqk7tu'
tests/test_emitter.py:68: NameError
_____________________ ERROR at teardown of test_move_from ______________________
tmpdir = '/tmp/tmpkx9xo5ga'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpkx9xo5ga'
tests/test_emitter.py:68: NameError
_____________ ERROR at teardown of test_separate_consecutive_moves _____________
tmpdir = '/tmp/tmpcknemy9k'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpcknemy9k'
tests/test_emitter.py:68: NameError
____________________ ERROR at teardown of test_delete_self _____________________
tmpdir = '/tmp/tmp_jnzzv7m'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp_jnzzv7m'
tests/test_emitter.py:68: NameError
________ ERROR at teardown of test_fast_subdirectory_creation_deletion _________
tmpdir = '/tmp/tmp05ixyjr_'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp05ixyjr_'
tests/test_emitter.py:68: NameError
________ ERROR at teardown of test_passing_unicode_should_give_unicode _________
tmpdir = '/tmp/tmpjplc6yt5'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpjplc6yt5'
tests/test_emitter.py:68: NameError
__________ ERROR at teardown of test_passing_bytes_should_give_bytes ___________
tmpdir = '/tmp/tmpz_v7vo13'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpz_v7vo13'
tests/test_emitter.py:68: NameError
____________________ ERROR at teardown of test_recursive_on ____________________
tmpdir = '/tmp/tmp54aj16qz'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp54aj16qz'
tests/test_emitter.py:68: NameError
___________________ ERROR at teardown of test_recursive_off ____________________
tmpdir = '/tmp/tmprwtoaf0h'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmprwtoaf0h'
tests/test_emitter.py:68: NameError
____________ ERROR at teardown of test_renaming_top_level_directory ____________
tmpdir = '/tmp/tmpokley0vy'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmpokley0vy'
tests/test_emitter.py:68: NameError
_____________ ERROR at teardown of test_move_nested_subdirectories _____________
tmpdir = '/tmp/tmp_f5abe7n'
    @pytest.fixture(autouse=True)
    def setup_teardown(tmpdir):
        global p, emitter, event_queue
        p = partial(os.path.join, tmpdir)
        event_queue = Queue()
    
        yield
    
>       emitter.stop()
E       NameError: name 'emitter' is not defined
tmpdir     = '/tmp/tmp_f5abe7n'
tests/test_emitter.py:68: NameError
=================================== FAILURES ===================================
_________________________________ test_create __________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_create():
>       start_watching()
tests/test_emitter.py:95: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpmbqkrk4a/', self = <KqueueEmitter(Thread-1, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpmbqkrk4a/'
self       = <KqueueEmitter(Thread-1, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_________________________________ test_delete __________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_delete():
        touch(p('a'))
>       start_watching()
tests/test_emitter.py:111: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp5b5gg2yc/', self = <KqueueEmitter(Thread-2, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp5b5gg2yc/'
self       = <KqueueEmitter(Thread-2, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_________________________________ test_modify __________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_modify():
        touch(p('a'))
>       start_watching()
tests/test_emitter.py:127: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp_z3hak6a/', self = <KqueueEmitter(Thread-3, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp_z3hak6a/'
self       = <KqueueEmitter(Thread-3, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
__________________________________ test_move ___________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_move():
        mkdir(p('dir1'))
        mkdir(p('dir2'))
        touch(p('dir1', 'a'))
>       start_watching()
tests/test_emitter.py:140: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpb1arsmyp/', self = <KqueueEmitter(Thread-4, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpb1arsmyp/'
self       = <KqueueEmitter(Thread-4, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_________________________________ test_move_to _________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_move_to():
        mkdir(p('dir1'))
        mkdir(p('dir2'))
        touch(p('dir1', 'a'))
>       start_watching(p('dir2'))
tests/test_emitter.py:171: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpuwqqk7tu/dir2', self = <KqueueEmitter(Thread-5, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpuwqqk7tu/dir2'
self       = <KqueueEmitter(Thread-5, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
________________________________ test_move_from ________________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_move_from():
        mkdir(p('dir1'))
        mkdir(p('dir2'))
        touch(p('dir1', 'a'))
>       start_watching(p('dir1'))
tests/test_emitter.py:203: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpkx9xo5ga/dir1', self = <KqueueEmitter(Thread-6, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpkx9xo5ga/dir1'
self       = <KqueueEmitter(Thread-6, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_______________________ test_separate_consecutive_moves ________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_separate_consecutive_moves():
        mkdir(p('dir1'))
        touch(p('dir1', 'a'))
        touch(p('b'))
>       start_watching(p('dir1'))
tests/test_emitter.py:235: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpcknemy9k/dir1', self = <KqueueEmitter(Thread-7, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpcknemy9k/dir1'
self       = <KqueueEmitter(Thread-7, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_______________________________ test_delete_self _______________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_delete_self():
        mkdir(p('dir1'))
>       start_watching(p('dir1'))
tests/test_emitter.py:261: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp_jnzzv7m/dir1', self = <KqueueEmitter(Thread-8, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp_jnzzv7m/dir1'
self       = <KqueueEmitter(Thread-8, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
___________________ test_fast_subdirectory_creation_deletion ___________________
    @pytest.mark.skipif(platform.is_windows(),
                        reason="Windows create another set of events for this test")
    def test_fast_subdirectory_creation_deletion():
        root_dir = p('dir1')
        sub_dir = p('dir1', 'subdir1')
        times = 30
        mkdir(root_dir)
>       start_watching(root_dir)
root_dir   = '/tmp/tmp05ixyjr_/dir1'
sub_dir    = '/tmp/tmp05ixyjr_/dir1/subdir1'
times      = 30
tests/test_emitter.py:277: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp05ixyjr_/dir1', self = <KqueueEmitter(Thread-9, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp05ixyjr_/dir1'
self       = <KqueueEmitter(Thread-9, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
___________________ test_passing_unicode_should_give_unicode ___________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_passing_unicode_should_give_unicode():
>       start_watching(str_cls(p("")))
tests/test_emitter.py:302: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpjplc6yt5/', self = <KqueueEmitter(Thread-10, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpjplc6yt5/'
self       = <KqueueEmitter(Thread-10, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_____________________ test_passing_bytes_should_give_bytes _____________________
    @pytest.mark.skipif(platform.is_windows(),
                        reason="Windows ReadDirectoryChangesW supports only"
                               " unicode for paths.")
    def test_passing_bytes_should_give_bytes():
>       start_watching(p('').encode())
tests/test_emitter.py:312: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = b'/tmp/tmpz_v7vo13/', self = <KqueueEmitter(Thread-11, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = b'/tmp/tmpz_v7vo13/'
self       = <KqueueEmitter(Thread-11, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
______________________________ test_recursive_on _______________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_recursive_on():
        mkdir(p('dir1', 'dir2', 'dir3'), True)
>       start_watching()
tests/test_emitter.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp54aj16qz/', self = <KqueueEmitter(Thread-12, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp54aj16qz/'
self       = <KqueueEmitter(Thread-12, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
______________________________ test_recursive_off ______________________________
    @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
    def test_recursive_off():
        mkdir(p('dir1'))
>       start_watching(recursive=False)
tests/test_emitter.py:341: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmprwtoaf0h/', self = <KqueueEmitter(Thread-13, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmprwtoaf0h/'
self       = <KqueueEmitter(Thread-13, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
______________________ test_renaming_top_level_directory _______________________
    @pytest.mark.skipif(platform.is_windows(),
                        reason="Windows create another set of events for this test")
    def test_renaming_top_level_directory():
>       start_watching()
tests/test_emitter.py:351: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmpokley0vy/', self = <KqueueEmitter(Thread-14, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmpokley0vy/'
self       = <KqueueEmitter(Thread-14, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
_______________________ test_move_nested_subdirectories ________________________
    @pytest.mark.skipif(platform.is_windows(),
                        reason="Windows create another set of events for this test")
    def test_move_nested_subdirectories():
        mkdir(p('dir1/dir2/dir3'), parents=True)
        touch(p('dir1/dir2/dir3', 'a'))
>       start_watching(p(''))
tests/test_emitter.py:461: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_emitter.py:79: in start_watching
    emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
src/watchdog/observers/kqueue.py:445: in __init__
    stat=custom_stat)
src/watchdog/utils/dirsnapshot.py:253: in __init__
    st = self.stat(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
path = '/tmp/tmp_f5abe7n/', self = <KqueueEmitter(Thread-15, initial daemon)>
    def custom_stat(path, self=self):
>       stat_info = stat(path)
E       TypeError: 'module' object is not callable
path       = '/tmp/tmp_f5abe7n/'
self       = <KqueueEmitter(Thread-15, initial daemon)>
src/watchdog/observers/kqueue.py:439: TypeError
--------- coverage: platform freebsd12, python 3.7.6-final-0 ---------
======= 15 failed, 59 passed, 8 skipped, 15 errors in 134.78s (0:02:14) ========

@evilham
Copy link
Contributor

evilham commented Feb 6, 2020

This sounds great, hope it gets merged and checked automatically for the repo, even if it is marked as a non-critical failure while we sort things out.

Also FTR: most of the failures listed there are fixed by #633, I am figuring out the rest on #632

@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Feb 6, 2020

I would love to add automatic checks on the repos, but nobody in the maintainers group has enough rights to do it. Only the repos creator could do it and it is quite hard to ping him.
But nothing is lost, even if automatic checks are added later, you can use your own Cirrus-CI account on your fork to validate stuff.

@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Feb 6, 2020

You could open a PR to fix the stat() issue first, as it seems to be the simpler one to tackle.

@BoboTiG BoboTiG merged commit 9ef3b1b into gorakhargosh:master Feb 6, 2020
@BoboTiG BoboTiG deleted the feat-issue-532-freebsd-ci branch February 6, 2020 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Need to add FreeBSD CI
2 participants