diff --git a/Makefile b/Makefile index 4e45e1d..3b2d493 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: ci checkformat lint install run autoformat +.PHONY: ci checkformat lint test run autoformat VENV_NAME?=venv VENV_ACTIVATE=. $(VENV_NAME)/bin/activate @@ -11,24 +11,21 @@ venv: $(VENV_NAME)/bin/activate $(VENV_NAME)/bin/activate: setup.py requirements-dev.txt Makefile test -d $(VENV_NAME) || virtualenv -p python3 $(VENV_NAME) - $(PYTHON) -m pip install -U pip + $(PYTHON) -m pip install --upgrade pip $(PYTHON) -m pip install -r requirements-dev.txt $(PYTHON) -m pip install -e . touch $(VENV_NAME)/bin/activate -ci: checkformat lint install +ci: checkformat lint test -checkformat: - $(PYTHON) -m yapf --diff -r setup.py $(PROJECT) +checkformat: venv + $(PYTHON) -m yapf . -r --diff --exclude $(VENV_NAME) lint: venv - $(PYTHON) -m flake8 --statistics --show-source setup.py $(PROJECT) + $(PYTHON) -m flake8 . --count --show-source --statistics --exclude $(VENV_NAME) -install: venv - $(PYTHON) -m pip install . - -run: install - $(VENV_NAME)/bin/$(PROJECT) receive +test: venv + $(PYTHON) -m pytest autoformat: venv - $(PYTHON) -m yapf -i -r setup.py $(PROJECT) + $(PYTHON) -m yapf . -r --in-place --exclude $(VENV_NAME) diff --git a/requirements-dev.txt b/requirements-dev.txt index e3c3388..fd4c0f2 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,3 @@ flake8 +pytest yapf diff --git a/tests/test_client.py b/tests/test_client.py new file mode 100644 index 0000000..a6ef6ba --- /dev/null +++ b/tests/test_client.py @@ -0,0 +1,19 @@ +from opendrop.client import AirDropBrowser +from opendrop.config import AirDropConfig + + +def get_loopback(): + import ifaddr + for adapter in ifaddr.get_adapters(): + if adapter.name.startswith('lo'): + return adapter.name + return None + + +def test_browser_setup(): + loopback = get_loopback() + assert loopback is not None, 'Could not find loopback interface' + config = AirDropConfig(interface=loopback) + browser = AirDropBrowser(config) + browser.start() + browser.stop() diff --git a/tests/test_server.py b/tests/test_server.py new file mode 100644 index 0000000..03fed1a --- /dev/null +++ b/tests/test_server.py @@ -0,0 +1,20 @@ +from opendrop.server import AirDropServer +from opendrop.config import AirDropConfig + + +def get_loopback(): + import ifaddr + for adapter in ifaddr.get_adapters(): + if adapter.name.startswith('lo'): + return adapter.name + return None + + +def test_server_setup(): + loopback = get_loopback() + assert loopback is not None, 'Could not find loopback interface' + config = AirDropConfig(interface=loopback) + server = AirDropServer(config) + server.start_service() + # TODO currently no good way of stopping the server + # server.start_server()