Skip to content
Merged

E2e #62

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion test/e2e/conftest.py
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
from ..fixtures.db import client
import pytest
from dataclasses import asdict

from ..fixtures.db import client, collection
from ..fixtures.data_factories.date_db_factory import DateDbFactory


@pytest.fixture
def date(collection):
date_object = DateDbFactory()
data = collection.insert_one(asdict(date_object))

return data
31 changes: 31 additions & 0 deletions test/e2e/test_date.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from http import HTTPStatus
from dataclasses import asdict

from ..fixtures.data_factories.date_factory import DateFactory

def test_create_date(client):
response = client.post('date', json={
'title': 'test',
'dateEnd': '2026-02-05T05:14:40.754Z',
'timezone': 'Brazil/West'
})

assert response.status_code == HTTPStatus.CREATED

def test_get_date(client, date):
response = client.get(f'/date/{str(date.inserted_id)}')

assert response.status_code == HTTPStatus.OK

def test_update_date(client, date):
data_object = DateFactory(dateEnd=None)
response = client.patch(f'/date/{str(date.inserted_id)}', json=asdict(data_object))

assert response.status_code == HTTPStatus.OK
assert response.json['data']['title'] == data_object.title

def test_delete_date(client, date):
response = client.delete(f'/date/{str(date.inserted_id)}')

assert response.status_code == HTTPStatus.OK
assert response.json['message'] == 'Date deleted successfully'
6 changes: 6 additions & 0 deletions test/e2e/test_timezone.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from http import HTTPStatus

def test_list_timezones(client):
response = client.get('timezones')

assert response.status_code == HTTPStatus.OK
25 changes: 16 additions & 9 deletions test/fixtures/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,30 @@
from werkzeug.test import Client
from pymongo import MongoClient

TEST_MONGO_URI = 'mongodb://localhost/test'
TEST_DB_NAME = 'test'

@pytest.fixture
def client():
from app import app
def collection():
mongo = MongoClient(TEST_MONGO_URI)
db = mongo[TEST_DB_NAME]
collection = db.dates

test_mongodb_uri = 'mongodb://localhost/test'
test_db_name = 'test'
yield collection

mongo.drop_database('test')

@pytest.fixture
def client(collection):
from app import create_app
app = create_app()

app.config.update({
"MONGO_URI": test_mongodb_uri,
"MONGO_DB": test_db_name,
"MONGO_CONNECTION": TEST_MONGO_URI,
"MONGO_DB": TEST_DB_NAME,
"TESTING": True,
})

test_client = Client(app)

yield test_client

mongo = MongoClient(test_mongodb_uri)
mongo.drop_database(test_db_name)