From 751ac180412f44c07490062b84f55709c6caa107 Mon Sep 17 00:00:00 2001 From: Dimas FM <dimasfaid@gmail.com> Date: Fri, 3 May 2024 16:33:27 +0700 Subject: [PATCH] refactor central browser --- db/comments.db | Bin 24576 -> 24576 bytes db/posts.db | Bin 15060992 -> 15060992 bytes db/users.db | Bin 53248 -> 53248 bytes tests/changeProfilePicture.py | 6 +++--- tests/conftest.py | 19 +++++++++++++++++++ tests/logout.py | 8 ++++---- tests/sandbox.py | 4 ++-- tests/test_change_username.py | 14 +++----------- tests/test_create_comment.py | 10 ++-------- tests/test_create_post.py | 11 ++--------- tests/test_delete_account.py | 10 ++-------- tests/test_delete_comment.py | 12 +++--------- tests/test_delete_post.py | 10 ++-------- tests/test_edit_post.py | 14 ++++---------- tests/test_login.py | 10 ++-------- tests/test_register.py | 13 +++---------- 16 files changed, 51 insertions(+), 90 deletions(-) create mode 100644 tests/conftest.py diff --git a/db/comments.db b/db/comments.db index 152b3635a3a7394a9eca1de75902b6d5089d51c5..3b4680d0878fb201e5136b1f329efd2f2301f6d8 100644 GIT binary patch delta 44 zcmZoTz}Rqrae_4C%84@0j4L-L%-3i1-DHq2%IG(_z}10iTkU4YC{D)ByWLzR0cTwg AdjJ3c delta 44 zcmV+{0Mq|~zyW~30gxL3mysMp0hh60pDzJNvM_HI0Z5Z@ML+_k!m~kI2?4XaMnxH9 C1`mJ$ diff --git a/db/posts.db b/db/posts.db index 82a2832abaf0f9ba223c1d3476a730f7e6c871ac..74a4367cc8052819d04064c3ffda17caf0d31838 100644 GIT binary patch delta 2861 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 S$Lh3do_;hk+N4aKkp3T;6`Y>{ delta 2987 zcmYk;d2q~k9LDiIeoa)jHniF*Ev1(ptVH4p2@yAm`wEF85z8-$2!dP$acARN1c@Nx z%)$DJE5uQ)E8^B7u2%ig>a;UD(++)qCf`45<~7gmCfVnk`99f^k?;1-fUB{&Jf}&B zxx6$gFUTBP7Mve%2@TCGD9$P<Hp2odG`s;Xc%u&9L|wcE8{S4e*x`fvXn=R{E*j!J zypIpi2p^&`n&2aRjHYOYPtY7K@F_mS=lB9&q9wk<*Z2nCq7_=hfj01kAKJnn0ceNz z=zxysgg|sg7X%>~UC|98=#EhIKu`2SZ}dT5^h19PKp4U?5Q8unLogJ>FdQQ=5~DC0 z5g3E9h(r{|VLT>aBBBw4Nr=T{qoCM1&S5SwG)MevySdb(O(Dt*%}4Tpp*52{$d@HO zh88S&$k4(i4MU5PJZxwQlI4b$A$i2mT#`o(Eno7Op_ND;H?)(ICk(Ahvck}6Bu^UJ z3&~R+Z7NYoz2s@?CC^YVd6s&~bJR<IN4?~E>LtIYUh)U(B`;7fd69a_OVmqVre5+2 z^^#T8OJ4P8I#Er%<TdIguTw91gL=uE)Jxu?UVmk`c-`Usr@gY*HSy2-(qyvv8ny(z zg~i<2?MT!k8-?>yCj{aV9>ak)?xIA!!ra9jJ6->${!m^Sg25Psfksl29%Bjc`o(1O zdd3Td*oh+S!fx!rUhKnu6r%*ChR-bhsJUejkAu+_-4KHA2t^O{L@)F<{z}%bSR3}? zabNU9e+)pF`*w<+oxYui+c?T|{L15D7>*GbiBTAh2#mp4L?Q~U(F%TO3x5Ql9onM< zI^u7W$y?s909%odJZv$U+;K^Iopf6+&o*KM*29f;Sc^4SjaA5j3)xtS6<CgCSc)ZB zj4Uj|LM%Wg=3^c*kd8E@BE@7k+2-<K4rU|ST{BZ}?ygSN1KoGibboV++m^0ZTWmYr zPtx^f%uoN<e#oV3J}g8gbB_f|-e-Z54_KgN4GWZf=+WYcM=VhCF$<J@!U83qvOvk7 zSzz2BP3?uxV*Co9hb6^EC(1_T)!&*n@a4su;(uRoIA7bdtgbl3BLUNpi0Mee49vtV zBx5$_U@lUSiZrAn1M@H+nOJ~@ScEJr#u6;WGAzdmtVA|k$iXVC#u}`}I=HbO8?X_% z*o4j4f;{A7D+;g;+pz<M*oh+S!fx!rUhKnu6r%*CD8m69ga?OU;4sQ@1V?cU$8iD` zIEhn+)m8aA$YPtoJ)h=QT5-vet+`}L2bV0_hD(<8<&q`+JlYweEtf3m&m~I+aLJPG zxMa!pT&H9QK4v64@+l|T$<Q(+1NoGb>`c967wRR0sFw_;Ua~9olHI764Do1ZiSE=( zhEgxtgL=uH)JyiFUa~j!l6|O`>`T35Kk6m>Q!hDyddV>ACBvzg97w(7AnGLtd$e=J z5b7m|QZG4-ddcC`OOBvkawPSVqo|i0O}%6U^^#+#mmEvIWF+tBd}TK*Rh56*YyUu= zslNl;IF3@u_l)N#k`p|d+{Z+YA{ot(O2%*$$w?eVGM1xAPUa|*PL3iug`-GL<tUQ6 z+CiM!LA=^Qg4)3}wSz>pgXy(9NTOcuWd`+<Gt~}esU0M%9n4lcn4@+uSM4B0?I2a{ zAWiKcUF{%4?O>kT!F;uY%-S6+pkD4}A@!1r)DE)L4i?w$z_2EqH}f%;Am6i0ZD2Xo z@_dEbz)H1&Y_$QG+CYxlz$&$Y)wLT~L$%!5TB;@2sSUW*2G*+$Y)~86s5X$RHn53$ z`MJ$%16$Mv@~D^B^Qo8IO1<QE^?V0?PCl4lICH((|E8DDm^v2QPW3KD>RorKmffm# zk2=L(b*g>pl>61Gi`8#YqJAs>FD0dAwZC(g)#m~(;u0?73aW4w)wqW1xPhCvh1<A; nyZ8}5;U4be0c!9NkMI~z46D!6-z)0*21K8*MTn62iP8T7c}ku` diff --git a/db/users.db b/db/users.db index 87b598cb91f2a7ed3acffdc953d59db55ad9c8df..c37b2335cbf6e8cb96d19b1f0d567dd4003e3a0b 100644 GIT binary patch delta 184 zcmV;p07w6TpaX!Q1CSd5x{(}10lKkZ87%{$0HL#dEkq0fp|im`RSE&2vlm3@8v&uR zV6k8UA(OJeN@jF5N<vh4Vs1$?M@DOQSaKvaW^z_SGg5e3T5oP+a5-0cZ%<)Rcv5I? zRzplwOK3AzL{>&YH&19mO?PulNH|tAX)k19FL*_2YgJffQEN*sW_nj<VK8JtHFtVd mFGWjKPIWUllL2BelP|^vlbFFB0=B!8x54HD0%)_J!eI@!Ekd{e delta 184 zcmV;p07w6TpaX!Q1CSd5XptO40cf#c87%{x0GzXYEkq0foU_3>RSE%|vlm3@8v&fM zV6k8U9FwxZN@i9uS6NgqIZ{VvXmBr7a#ticGIeHBWoTAcN-|+=P(^lYFJ(n_N?BE5 zK}Sq)aBo?5Ohqnqab`<lNk?K+Lsl?iOm=2)W^hS$XlG<MWkh**QZ#0ILQ-XRVJ|o@ mLU=T2RWeaelMxazlP|^vlbFFB0;d0yx54HD0c*3L!eI>>|3V-D diff --git a/tests/changeProfilePicture.py b/tests/changeProfilePicture.py index 593160c..3a22415 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 0000000..e711c66 --- /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 b79b4a3..801916c 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 7adb6c3..0c83acc 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 abf44d2..ab34f06 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 7618eac..54d6b51 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 aca2aad..808535c 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 b4f4dfe..1f5e317 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 d2d6556..b97d901 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 f8a8778..b0bd239 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 4367009..822c464 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 8f48062..de6afbe 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 e4c6fe8..685bcbd 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 -- GitLab