I've created a Travis CI account and added a .travis.yml to the repo root. This is enough to allow Travis CI to pull our code and run our tests.
Changes
Added .travis.yml file
Updated README with Travis CI build badge.
Fixed Python 2 import issue with unit tests.
Removed usage of nonlocal in unit tests (Python 2 compatibility).
Fixed race condition in many of the tests. We now call observer.stop() which will block until the worker threads are done. Then we check the state of the mock socket.
Changed the ordering of stopping the observer. Now we wait for both the inbound and outbound threads to join before we shutdown the socket.
Open Questions
Which versions of Python do we care about? Currently we are testing under the below. My concern is testing on the dev versions, which can introduce test failure simply because the builds are a work in progress.
Python 2.7
Python 3.3
Python 3.4
Python 3.5
Python 3.5-dev
Python 3.6
Python 3.6-dev
Python 3.7-dev
Python nightly builds
What operating systems do we care about? By default Travis CI only deploys to Linux machines. I think this is fine, I am not aware of any cross platform issues we may have.
@PythooonUser
Please review these changes. If you think they look okay, I am comfortable with you merging the PR into master. But if you want to talk about my changes first and wait, that is totally fine.
Overview
I've created a Travis CI account and added a .travis.yml to the repo root. This is enough to allow Travis CI to pull our code and run our tests.
Changes
observer.stop()
which will block until the worker threads are done. Then we check the state of the mock socket.Open Questions
@PythooonUser Please review these changes. If you think they look okay, I am comfortable with you merging the PR into master. But if you want to talk about my changes first and wait, that is totally fine.