[tests] Restructure testing files
This commit is contained in:
parent
17c3b4523f
commit
2af4b27e0b
|
@ -8,6 +8,7 @@ from fastapi.testclient import TestClient
|
|||
from kibicara import email
|
||||
from kibicara.model import Hood, Mapping
|
||||
from kibicara.platforms.twitter.model import Twitter
|
||||
from kibicara.platforms.telegram.model import Telegram
|
||||
from kibicara.webapi import router
|
||||
from pytest import fixture
|
||||
from urllib.parse import urlparse
|
||||
|
@ -145,3 +146,15 @@ def twitter(event_loop, hood_id):
|
|||
access_token_secret='access_token_secret123',
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@fixture(scope='function')
|
||||
def telegram(event_loop, hood_id, bot):
|
||||
hood = event_loop.run_until_complete(Hood.objects.get(id=hood_id))
|
||||
return event_loop.run_until_complete(
|
||||
Telegram.objects.create(
|
||||
hood=hood,
|
||||
api_token=bot['api_token'],
|
||||
welcome_message=bot['welcome_message'],
|
||||
)
|
||||
)
|
||||
|
|
45
tests/tests_telegram/test_api_telegram_delete_bot.py
Normal file
45
tests/tests_telegram/test_api_telegram_delete_bot.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Copyright (C) 2020 by Cathy Hu <cathy.hu@fau.de>
|
||||
#
|
||||
# SPDX-License-Identifier: 0BSD
|
||||
|
||||
from fastapi import status
|
||||
from kibicara.platforms.telegram.model import Telegram, TelegramUser
|
||||
from ormantic.exceptions import NoMatch
|
||||
from pytest import mark, raises
|
||||
|
||||
|
||||
@mark.parametrize('bot', [{'api_token': 'apitoken123', 'welcome_message': 'msg'}])
|
||||
def test_telegram_delete_bot(client, event_loop, bot, telegram, auth_header):
|
||||
event_loop.run_until_complete(
|
||||
TelegramUser.objects.create(user_id=1234, bot=telegram.id)
|
||||
)
|
||||
event_loop.run_until_complete(
|
||||
TelegramUser.objects.create(user_id=5678, bot=telegram.id)
|
||||
)
|
||||
response = client.delete(
|
||||
f'/api/hoods/{telegram.hood.id}/telegram/{telegram.id}', headers=auth_header
|
||||
)
|
||||
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||
with raises(NoMatch):
|
||||
event_loop.run_until_complete(Telegram.objects.get(id=telegram.id))
|
||||
with raises(NoMatch):
|
||||
event_loop.run_until_complete(TelegramUser.objects.get(id=telegram.id))
|
||||
|
||||
|
||||
def test_telegram_delete_bot_invalid_id(client, auth_header, hood_id):
|
||||
response = client.delete('/api/hoods/1337/telegram/123', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||
response = client.delete('/api/hoods/wrong/telegram/123', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
response = client.delete(f'/api/hoods/{hood_id}/telegram/7331', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||
response = client.delete(
|
||||
f'/api/hoods/{hood_id}/telegram/wrong', headers=auth_header
|
||||
)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
|
||||
|
||||
@mark.parametrize('bot', [{'api_token': 'apitoken123', 'welcome_message': 'msg'}])
|
||||
def test_telegram_delete_bot_unauthorized(client, bot, telegram):
|
||||
response = client.delete(f'/api/hoods/{telegram.hood.id}/telegram/{telegram.id}')
|
||||
assert response.status_code == status.HTTP_401_UNAUTHORIZED
|
34
tests/tests_telegram/test_api_telegram_get_bot.py
Normal file
34
tests/tests_telegram/test_api_telegram_get_bot.py
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Copyright (C) 2020 by Cathy Hu <cathy.hu@fau.de>
|
||||
#
|
||||
# SPDX-License-Identifier: 0BSD
|
||||
|
||||
from fastapi import status
|
||||
from pytest import mark
|
||||
|
||||
|
||||
@mark.parametrize('bot', [{'api_token': 'apitoken123', 'welcome_message': 'msg'}])
|
||||
def test_telegram_get_bot(client, auth_header, event_loop, bot, telegram):
|
||||
response = client.get(
|
||||
f'/api/hoods/{telegram.hood.id}/telegram/{telegram.id}', headers=auth_header
|
||||
)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()['id'] == telegram.id
|
||||
assert response.json()['api_token'] == telegram.api_token
|
||||
assert response.json()['welcome_message'] == telegram.welcome_message
|
||||
|
||||
|
||||
def test_telegram_get_bot_invalid_id(client, auth_header, hood_id):
|
||||
response = client.get('/api/hoods/1337/telegram/123', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||
response = client.get('/api/hoods/wrong/telegram/123', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
response = client.get(f'/api/hoods/{hood_id}/telegram/7331', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||
response = client.get(f'/api/hoods/{hood_id}/telegram/wrong', headers=auth_header)
|
||||
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
|
||||
|
||||
@mark.parametrize('bot', [{'api_token': 'apitoken456', 'welcome_message': 'msg'}])
|
||||
def test_telegram_get_bot_unauthorized(client, bot, telegram):
|
||||
response = client.get(f'/api/hoods/{telegram.hood.id}/telegram/{telegram.id}')
|
||||
assert response.status_code == status.HTTP_401_UNAUTHORIZED
|
|
@ -6,13 +6,12 @@ from fastapi import status
|
|||
from kibicara import config
|
||||
from kibicara.platforms import twitter
|
||||
from kibicara.platforms.twitter.model import Twitter
|
||||
from pytest import fixture
|
||||
import pytest
|
||||
from pytest import fixture, mark
|
||||
|
||||
|
||||
@fixture(scope='function')
|
||||
def receive_oauth_request_token(monkeypatch, twitter_request_response):
|
||||
@pytest.mark.asyncio
|
||||
@mark.asyncio
|
||||
async def mock_get_oauth_request_token(
|
||||
consumer_key, consumer_secret, callback_uri=''
|
||||
):
|
||||
|
@ -23,7 +22,7 @@ def receive_oauth_request_token(monkeypatch, twitter_request_response):
|
|||
|
||||
@fixture(scope='function')
|
||||
def receive_oauth_access_token(monkeypatch, twitter_access_response):
|
||||
@pytest.mark.asyncio
|
||||
@mark.asyncio
|
||||
async def mock_get_oauth_access_token(
|
||||
consumer_key, consumer_secret, access_token, access_token_secret, oauth_verifier
|
||||
):
|
||||
|
@ -41,7 +40,7 @@ def disable_spawner(monkeypatch):
|
|||
monkeypatch.setattr(twitter.webapi, 'spawner', DoNothing())
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@mark.parametrize(
|
||||
'twitter_request_response, twitter_access_response',
|
||||
[
|
||||
(
|
Loading…
Reference in a new issue