diff --git a/db/comments.db b/db/comments.db index 152b3635a3a7394a9eca1de75902b6d5089d51c5..3b4680d0878fb201e5136b1f329efd2f2301f6d8 100644 Binary files a/db/comments.db and b/db/comments.db differ diff --git a/db/posts.db b/db/posts.db index 82a2832abaf0f9ba223c1d3476a730f7e6c871ac..74a4367cc8052819d04064c3ffda17caf0d31838 100644 Binary files a/db/posts.db and b/db/posts.db differ diff --git a/db/users.db b/db/users.db index 87b598cb91f2a7ed3acffdc953d59db55ad9c8df..c37b2335cbf6e8cb96d19b1f0d567dd4003e3a0b 100644 Binary files a/db/users.db and b/db/users.db differ diff --git a/tests/changeProfilePicture.py b/tests/changeProfilePicture.py index 593160cf2fcbc2dfa7705376557166967f2afabf..3a224152c7a5efd05e9f43427fd87122d51a0048 100644 --- a/tests/changeProfilePicture.py +++ b/tests/changeProfilePicture.py @@ -4,7 +4,7 @@ from constants import URL # Define a function that takes a playwright object as an argument -def run(playwright: Playwright) -> None: +def run(page: Page) -> None: # Launch a chromium browser in non-headless mode browser = playwright.chromium.launch(headless=False) # Create a new browser context @@ -39,8 +39,8 @@ def run(playwright: Playwright) -> None: page.get_by_role("button", name="set seed").click() # Close the browser context and the browser - context.close() - browser.close() + # context.close() + # browser.close() # Use the sync_playwright context manager to run the function diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000000000000000000000000000000000000..e711c6621ee2b9959c8ae52702cd5523c7ca34f6 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,19 @@ +# conftest.py +import pytest +from tests.utils import USE_HEADLESS +from playwright.sync_api import sync_playwright, Browser + +@pytest.fixture(scope="session") +def browser(): + with sync_playwright() as p: + browser = p.chromium.launch(headless=USE_HEADLESS) + yield browser + print('\nClosing Browser') + browser.close() + +@pytest.fixture +def page(browser: Browser): + context = browser.new_context() + page = context.new_page() + yield page + context.close() \ No newline at end of file diff --git a/tests/logout.py b/tests/logout.py index b79b4a30bb10202d9dd6d184b240d56f1be6bfe2..801916cc561ad41bfddff3d09a7e0413f0f83294 100644 --- a/tests/logout.py +++ b/tests/logout.py @@ -1,10 +1,10 @@ # Import the playwright module and the constants file -from playwright.sync_api import Playwright, sync_playwright, expect +from playwright.sync_api import Playwright, sync_playwright, expect, Page from constants import URL # Define a function that takes a playwright object as an argument -def run(playwright: Playwright) -> None: +def run(page: Page) -> None: # Launch a chromium browser in non-headless mode browser = playwright.chromium.launch(headless=False) # Create a new browser context @@ -29,8 +29,8 @@ def run(playwright: Playwright) -> None: page.get_by_role("link", name="").click() # Close the browser context and the browser - context.close() - browser.close() + # context.close() + # browser.close() # Use the sync_playwright context manager to run the function diff --git a/tests/sandbox.py b/tests/sandbox.py index 7adb6c384876efc70e663e101be4f01750eaa338..0c83acc529595f4adcbddb4b6a706332852a12a8 100644 --- a/tests/sandbox.py +++ b/tests/sandbox.py @@ -1,10 +1,10 @@ -from playwright.sync_api import Playwright, sync_playwright, expect +from playwright.sync_api import sync_playwright, Page from utils.user import UserTest from utils.constant import URL from functions.login import login post_id = 1 -def run(playwright: Playwright): +def run(page: Page): browser = playwright.chromium.launch(headless=False) context = browser.new_context() page = context.new_page() diff --git a/tests/test_change_username.py b/tests/test_change_username.py index abf44d2a1352d565a277f7b307b9a528183926ea..ab34f06048484b5f5bc360f5f7388ca65747f916 100644 --- a/tests/test_change_username.py +++ b/tests/test_change_username.py @@ -1,5 +1,5 @@ # Import the playwright module and the constants file -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page import pytest, sqlite3 from tests.utils import USE_HEADLESS, URL, DB_USERS_ROOT, UserTest, is_user_exist from tests.functions import edit_username, login @@ -16,19 +16,11 @@ def user (): connection.commit() # Define a function that takes a playwright object as an argument -def test_change_username(playwright: Playwright, user: UserTest) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() - +def test_change_username(page: Page, user: UserTest) -> None: page = login(page, user) new_username = "NewUsername" page = edit_username(page, new_username) assert is_user_exist(user.username) == False - assert is_user_exist(new_username) == True - - # Close the browser context and the browser - context.close() - browser.close() + assert is_user_exist(new_username) == True \ No newline at end of file diff --git a/tests/test_create_comment.py b/tests/test_create_comment.py index 7618eacc2011c9661fbd5e4120d813d01436aa9b..54d6b51223b6467e3ccaec915012a796dc2750f1 100644 --- a/tests/test_create_comment.py +++ b/tests/test_create_comment.py @@ -1,5 +1,5 @@ # Import the playwright module and the constants file -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page import pytest, sqlite3 from tests.utils import USE_HEADLESS, URL, DB_COMMENTS_ROOT, UserTest from tests.functions import login, create_comment, new_comment @@ -20,10 +20,7 @@ def delete_comment(): connection.commit() # Define a function that takes a playwright object as an argument -def test_create_comment(playwright: Playwright, user: UserTest) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_create_comment(page: Page, user: UserTest) -> None: page.goto(URL) page = login(page, user) @@ -31,9 +28,6 @@ def test_create_comment(playwright: Playwright, user: UserTest) -> None: page, comment_id = create_comment(page, 1) expect(page.get_by_text(new_comment)).to_be_visible() - # Close the browser context and the browser - context.close() - browser.close() def get_newest_comment(): connection = sqlite3.connect(DB_COMMENTS_ROOT) diff --git a/tests/test_create_post.py b/tests/test_create_post.py index aca2aad79be2298f9adf02c8ce6d5b55f508dd64..808535cec1d0c25fedc60ac2880082e6f4fa259d 100644 --- a/tests/test_create_post.py +++ b/tests/test_create_post.py @@ -1,4 +1,4 @@ -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page import pytest from tests.utils import USE_HEADLESS, URL, UserTest, delete_post from tests.functions import login, create_post @@ -9,10 +9,7 @@ def user (): yield user # Define a function that takes a playwright object as an argument -def test_create_post(playwright: Playwright, user: UserTest) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_create_post(page: Page, user: UserTest) -> None: page.goto(URL) page = login(page, user) @@ -24,7 +21,3 @@ def test_create_post(playwright: Playwright, user: UserTest) -> None: delete_post(post_id) - # Close the browser context and the browser - context.close() - browser.close() - diff --git a/tests/test_delete_account.py b/tests/test_delete_account.py index b4f4dfed700c861ac90074a83cb7f4a09af13bf8..1f5e3170665ad37f531153fb4f5eb43e95f99af2 100644 --- a/tests/test_delete_account.py +++ b/tests/test_delete_account.py @@ -1,4 +1,4 @@ -from playwright.sync_api import Playwright +from playwright.sync_api import Playwright, expect, Page import pytest from tests.utils import USE_HEADLESS, URL, UserTest, is_user_exist from tests.functions import register, delete_account @@ -8,10 +8,7 @@ def user (): user = UserTest("User_Test_Register") yield user -def test_delete_account(playwright: Playwright, user) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_delete_account(page: Page, user) -> None: page.goto(URL) page = register(page, user) @@ -19,8 +16,5 @@ def test_delete_account(playwright: Playwright, user) -> None: page = delete_account(page) assert is_user_exist(user.username) == False - - context.close() - browser.close() diff --git a/tests/test_delete_comment.py b/tests/test_delete_comment.py index d2d6556ea0bee589a7dbb2de894c5d5cf9b158b8..b97d901b1f7836c40793aa37e2544a9f6f801a5d 100644 --- a/tests/test_delete_comment.py +++ b/tests/test_delete_comment.py @@ -1,4 +1,5 @@ -from playwright.sync_api import Playwright +from playwright.sync_api import Playwright, expect, Page + from tests.utils import URL, DB_COMMENTS_ROOT, USE_HEADLESS, UserTest from tests.functions import login, create_comment, delete_comment import pytest, sqlite3 @@ -10,10 +11,7 @@ def user(): user = UserTest("User_A") yield user -def test_delete_comment(playwright: Playwright, user) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_delete_comment(page: Page, user) -> None: page.goto(URL) page = login(page, user) @@ -24,10 +22,6 @@ def test_delete_comment(playwright: Playwright, user) -> None: assert is_comment_exist(comment_id) == False - context.close() - browser.close() - - def is_comment_exist(id): connection = sqlite3.connect(DB_COMMENTS_ROOT) cursor = connection.cursor() diff --git a/tests/test_delete_post.py b/tests/test_delete_post.py index f8a8778675aa75f28144481ed4555d31095e9899..b0bd2399845b2271c82f1306a28cf20e1524398c 100644 --- a/tests/test_delete_post.py +++ b/tests/test_delete_post.py @@ -1,4 +1,4 @@ -from playwright.sync_api import Playwright +from playwright.sync_api import Playwright, expect, Page import pytest, sqlite3 from tests.utils import USE_HEADLESS, URL, DB_POSTS_ROOT, UserTest, delete_post from tests.functions import login, create_post, delete_post @@ -9,10 +9,7 @@ def user (): yield user -def test_delete_post(playwright: Playwright, user) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_delete_post(page: Page, user) -> None: page.goto(URL) page = login(page, user) @@ -21,9 +18,6 @@ def test_delete_post(playwright: Playwright, user) -> None: assert is_post_exist(post_id) == False - context.close() - browser.close() - def is_post_exist(id): connection = sqlite3.connect(DB_POSTS_ROOT) cursor = connection.cursor() diff --git a/tests/test_edit_post.py b/tests/test_edit_post.py index 4367009aadc0c919534c3d9da6a0ea7bdbccb4e6..822c46491e8c5dd63370fafbf8574c1c61c4735e 100644 --- a/tests/test_edit_post.py +++ b/tests/test_edit_post.py @@ -1,4 +1,5 @@ -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page + import pytest from tests.utils import USE_HEADLESS, URL, DB_POSTS_ROOT, UserTest, delete_post from tests.functions import login, create_post, edit_post, new_title @@ -8,10 +9,7 @@ def user (): user = UserTest("User_A") yield user -def test_edit_post(playwright: Playwright, user) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() +def test_edit_post(page: Page, user) -> None: page.goto(URL) page = login(page, user) @@ -22,8 +20,4 @@ def test_edit_post(playwright: Playwright, user) -> None: expect(page).to_have_url(URL + '/post/' + str(post_id)) expect(page).to_have_title(new_title) - delete_post(post_id) - - context.close() - browser.close() - + delete_post(post_id) \ No newline at end of file diff --git a/tests/test_login.py b/tests/test_login.py index 8f4806283eb5c19ecb14115b4f0dec299e007865..de6afbe1c6d422673f216295dfaeb501cfe5c426 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -1,5 +1,5 @@ # Import the playwright module and the constants file -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page import pytest from tests.utils import USE_HEADLESS, URL, DB_USERS_ROOT, UserTest from tests.functions import login @@ -10,15 +10,9 @@ def user(): yield user # Define a function that takes a playwright object as an argument -def test_login(playwright: Playwright, user) -> None: - # Launch a chromium browser in non-headless mode - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() - +def test_login(page: Page, user) -> None: page = login(page, user) expect(page).to_have_url(URL + '/') expect(page.locator('[href*="/user/' + user.username + '"]')).to_be_visible() - browser.close() diff --git a/tests/test_register.py b/tests/test_register.py index e4c6fe87f075e2ea096c0b63f6bf01d9d37ad9cf..685bcbd7b58aded6ad35be8579ca8fb9e4cccde2 100644 --- a/tests/test_register.py +++ b/tests/test_register.py @@ -1,5 +1,5 @@ # Import the playwright module and the constants file -from playwright.sync_api import Playwright, expect +from playwright.sync_api import Playwright, expect, Page import pytest, sqlite3 from tests.utils import USE_HEADLESS, URL, DB_USERS_ROOT, UserTest from tests.functions import register @@ -15,15 +15,8 @@ def user (): connection.commit() # Define a function that takes a playwright object as an argument -def test_register(playwright: Playwright, user: UserTest) -> None: - browser = playwright.chromium.launch(headless=USE_HEADLESS) - context = browser.new_context() - page = context.new_page() - +def test_register(page: Page, user: UserTest) -> None: page = register(page, user) expect(page).to_have_url(URL + '/') - expect(page.locator('[href*="/user/' + user.username + '"]')).to_be_visible() - - context.close() - browser.close() + expect(page.locator('[href*="/user/' + user.username + '"]')).to_be_visible() \ No newline at end of file