Confirmed restart did not change session id.
This commit is contained in:
parent
d68988b2d4
commit
ea0503defd
@ -6,3 +6,9 @@ Feature: Session
|
|||||||
Given a running server
|
Given a running server
|
||||||
When the home page is accessed
|
When the home page is accessed
|
||||||
Then there is a default session id
|
Then there is a default session id
|
||||||
|
|
||||||
|
Scenario: Session ID is retained after restart
|
||||||
|
Given a running server
|
||||||
|
And the home page is accessed
|
||||||
|
When the server is restarted
|
||||||
|
Then the session id remains the same
|
||||||
|
@ -4,6 +4,7 @@ from pytest import fixture
|
|||||||
from .server import Server
|
from .server import Server
|
||||||
from .page import Page
|
from .page import Page
|
||||||
|
|
||||||
|
|
||||||
@fixture
|
@fixture
|
||||||
def server():
|
def server():
|
||||||
"""Create a server instance."""
|
"""Create a server instance."""
|
||||||
@ -11,7 +12,14 @@ def server():
|
|||||||
yield serv
|
yield serv
|
||||||
serv.destroy()
|
serv.destroy()
|
||||||
|
|
||||||
|
|
||||||
@fixture
|
@fixture
|
||||||
def page():
|
def page():
|
||||||
pg = Page()
|
"""Return a page for testing."""
|
||||||
return pg
|
return Page()
|
||||||
|
|
||||||
|
|
||||||
|
@fixture
|
||||||
|
def data_store():
|
||||||
|
"""Return a dictionary to hold between function test data."""
|
||||||
|
return {}
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
"""tests for server sessions."""
|
"""tests for server sessions."""
|
||||||
|
|
||||||
|
from time import sleep
|
||||||
from pytest_bdd import given, scenarios, then, when
|
from pytest_bdd import given, scenarios, then, when
|
||||||
|
|
||||||
|
SESSION_NAME = "morethantext.sid"
|
||||||
|
|
||||||
scenarios("../features/session.feature")
|
scenarios("../features/session.feature")
|
||||||
|
|
||||||
|
|
||||||
|
def get_session_id(page):
|
||||||
|
"""Pulls the session id cookie."""
|
||||||
|
cookies = page.get_cookies()
|
||||||
|
id_cookie = None
|
||||||
|
for holder in cookies:
|
||||||
|
if holder.name == SESSION_NAME:
|
||||||
|
id_cookie = holder
|
||||||
|
return id_cookie
|
||||||
|
|
||||||
|
|
||||||
@given("a running server")
|
@given("a running server")
|
||||||
def start_server(server):
|
def start_server(server):
|
||||||
"""Make a running server."""
|
"""Make a running server."""
|
||||||
@ -12,6 +25,14 @@ def start_server(server):
|
|||||||
server.start()
|
server.start()
|
||||||
|
|
||||||
|
|
||||||
|
@given("the home page is accessed")
|
||||||
|
def store_session_id(server, page, data_store):
|
||||||
|
"""Store the session id."""
|
||||||
|
page.request_url(f"http://{server.base_url}/")
|
||||||
|
cookie = get_session_id(page)
|
||||||
|
data_store["session"] = cookie.value
|
||||||
|
|
||||||
|
|
||||||
@when("the home page is accessed")
|
@when("the home page is accessed")
|
||||||
def access_home_page(server, page):
|
def access_home_page(server, page):
|
||||||
"""Access the home page."""
|
"""Access the home page."""
|
||||||
@ -19,13 +40,27 @@ def access_home_page(server, page):
|
|||||||
page.request_url(url)
|
page.request_url(url)
|
||||||
|
|
||||||
|
|
||||||
|
@when("the server is restarted")
|
||||||
|
def restart_server(server):
|
||||||
|
"""Restarts the server"""
|
||||||
|
server.stop()
|
||||||
|
sleep(1)
|
||||||
|
server.start()
|
||||||
|
|
||||||
|
|
||||||
@then("there is a default session id")
|
@then("there is a default session id")
|
||||||
def confirm_session(page):
|
def confirm_session(page):
|
||||||
"""Confirm session id exists."""
|
"""Confirm session id exists."""
|
||||||
cookies = page.get_cookies()
|
assert get_session_id(
|
||||||
name = "morethantext.sid"
|
page
|
||||||
cookie = None
|
), f"Did not find cookie {SESSION_NAME}, but retrieved {page.get_cookies()}"
|
||||||
for holder in cookies:
|
|
||||||
if holder.name == name:
|
|
||||||
cookie = holder
|
@then("the session id remains the same")
|
||||||
assert cookie, f"Did not find cookie {name}, but retrieved {cookies}"
|
def check_session_id(page, data_store):
|
||||||
|
"""Checks the new session with the old."""
|
||||||
|
cookie = get_session_id(page)
|
||||||
|
session = cookie.value
|
||||||
|
assert (
|
||||||
|
session == data_store["session"]
|
||||||
|
), f"Session id became {session} but should have been {data_store['session']}"
|
||||||
|
Loading…
Reference in New Issue
Block a user