From 2c794723c7b5927bf76fd2af9a270a7192446607 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Tue, 29 Jun 2021 14:30:05 +0200 Subject: [PATCH] add backend tests --- .github/workflows/test-backend.yml | 28 ++++++++++++++++++++++ backend/requirements.txt | 1 + backend/tests/deck_test.py | 37 ++++++++++++++++++++++++++++++ backend/tests/dummy_socket.py | 4 ++++ 4 files changed, 70 insertions(+) create mode 100644 .github/workflows/test-backend.yml create mode 100644 backend/tests/deck_test.py create mode 100644 backend/tests/dummy_socket.py diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml new file mode 100644 index 0000000..a0a00d3 --- /dev/null +++ b/.github/workflows/test-backend.yml @@ -0,0 +1,28 @@ +name: Python package + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.7] + defaults: + run: + working-directory: ./backend + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Test with pytest + run: | + pytest \ No newline at end of file diff --git a/backend/requirements.txt b/backend/requirements.txt index 343b795..7c0bd1f 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -5,3 +5,4 @@ greenlet==1.1.0 python-engineio==3.14.2 python-socketio==4.6.1 six==1.16.0 +pytest==6.2.4 \ No newline at end of file diff --git a/backend/tests/deck_test.py b/backend/tests/deck_test.py new file mode 100644 index 0000000..49a42c5 --- /dev/null +++ b/backend/tests/deck_test.py @@ -0,0 +1,37 @@ +from dummy_socket import DummySocket +from bang.deck import Deck +from bang.game import Game + +def test_card_flip(): + g = Game('test', DummySocket()) + g.deck = Deck(g) + l = len(g.deck.cards) + assert g.deck.pick_and_scrap() != None + assert len(g.deck.cards) == l - 1 + assert len(g.deck.scrap_pile) == 1 + +def test_draw(): + g = Game('test', DummySocket()) + g.deck = Deck(g) + l = len(g.deck.cards) + assert g.deck.draw() != None + assert len(g.deck.cards) == l - 1 + assert len(g.deck.scrap_pile) == 0 + +def test_reshuffle(): + g = Game('test', DummySocket()) + g.deck = Deck(g) + l = len(g.deck.cards) + for i in range(80): + assert g.deck.pick_and_scrap() != None + assert len(g.deck.cards) == 79 + assert len(g.deck.scrap_pile) == 1 + +def test_draw_from_scrap(): + g = Game('test', DummySocket()) + g.deck = Deck(g) + l = len(g.deck.cards) + assert g.deck.pick_and_scrap() != None + assert g.deck.draw_from_scrap_pile() != None + assert len(g.deck.cards) == 79 + assert len(g.deck.scrap_pile) == 0 \ No newline at end of file diff --git a/backend/tests/dummy_socket.py b/backend/tests/dummy_socket.py new file mode 100644 index 0000000..b190a38 --- /dev/null +++ b/backend/tests/dummy_socket.py @@ -0,0 +1,4 @@ + +class DummySocket(): + def emit(self, event, data=None, to=None, room=None, skip_sid=None, namespace=None, callback=None, **kwargs): + return True \ No newline at end of file