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