Added a session id.
This commit is contained in:
parent
df3abfa4d0
commit
c8680b33d4
10
src/main.rs
10
src/main.rs
@ -1,4 +1,8 @@
|
||||
use tide::{http::StatusCode, Request, Response};
|
||||
use tide::{
|
||||
http::StatusCode,
|
||||
sessions::{MemoryStore, SessionMiddleware},
|
||||
Request, Response,
|
||||
};
|
||||
|
||||
mod settings;
|
||||
|
||||
@ -16,6 +20,10 @@ async fn main() -> tide::Result<()> {
|
||||
async fn app_setup() -> tide::Server<()> {
|
||||
let mut app = tide::new();
|
||||
app.at("/").get(home);
|
||||
app.with(SessionMiddleware::new(
|
||||
MemoryStore::new(),
|
||||
b"361f953f-56ba-45e6-86ab-9efbf61b745d",
|
||||
));
|
||||
return app;
|
||||
}
|
||||
|
||||
|
8
tests/features/session.feature
Normal file
8
tests/features/session.feature
Normal file
@ -0,0 +1,8 @@
|
||||
Feature: Session
|
||||
|
||||
Browser session requirements
|
||||
|
||||
Scenario: Session ID is set
|
||||
Given a running server
|
||||
When the home page is accessed
|
||||
Then there is a session id
|
@ -3,6 +3,7 @@
|
||||
from urllib import request
|
||||
from urllib.error import HTTPError
|
||||
|
||||
|
||||
class Page:
|
||||
"""Class for getting an individual page."""
|
||||
|
||||
@ -13,10 +14,17 @@ class Page:
|
||||
def request_url(self, url):
|
||||
"""Make a page request."""
|
||||
try:
|
||||
self.res = request.urlopen(url)
|
||||
page = request.urlopen(url)
|
||||
except HTTPError as err:
|
||||
self.res = err
|
||||
else:
|
||||
with page:
|
||||
self.res = page
|
||||
|
||||
def get_status_code(self):
|
||||
"""Return the status code."""
|
||||
return self.res.status
|
||||
|
||||
def get_header(self, header):
|
||||
"""Did a session id get set."""
|
||||
return self.res.headers[header]
|
||||
|
25
tests/step_defs/test_session.py
Normal file
25
tests/step_defs/test_session.py
Normal file
@ -0,0 +1,25 @@
|
||||
"""tests for server sessions."""
|
||||
|
||||
from pytest_bdd import given, scenarios, then, when
|
||||
|
||||
scenarios("../features/session.feature")
|
||||
|
||||
|
||||
@given("a running server")
|
||||
def start_server(server):
|
||||
"""Make a running server."""
|
||||
server.set_safe_port()
|
||||
server.start()
|
||||
|
||||
|
||||
@when("the home page is accessed")
|
||||
def access_home_page(server, page):
|
||||
"""Access the home page."""
|
||||
url = f"http://{server.base_url}/"
|
||||
page.request_url(url)
|
||||
|
||||
|
||||
@then("there is a session id")
|
||||
def confirm_session(page):
|
||||
"""Confirm session id exists."""
|
||||
assert page.get_header("set-cookie")
|
Loading…
Reference in New Issue
Block a user