46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
import os
|
|
from urllib.parse import urlsplit
|
|
|
|
from flask import Flask
|
|
|
|
from amanuensis.db import DbContext, User, Lexicon
|
|
|
|
from .conftest import ObjectFactory, UserClient
|
|
|
|
|
|
def test_game_visibility(db: DbContext, app: Flask, make: ObjectFactory):
|
|
"""Test lexicon visibility settings."""
|
|
user: User = make.user()
|
|
auth: UserClient = make.client(user.id)
|
|
|
|
public_joined: Lexicon = make.lexicon()
|
|
public_joined.public = True
|
|
make.membership(user_id=auth.user_id, lexicon_id=public_joined.id)
|
|
public_joined_title = public_joined.full_title
|
|
|
|
private_joined: Lexicon = make.lexicon()
|
|
private_joined.public = False
|
|
make.membership(user_id=auth.user_id, lexicon_id=private_joined.id)
|
|
private_joined_title = private_joined.full_title
|
|
|
|
public_open: Lexicon = make.lexicon()
|
|
public_open.public = True
|
|
db.session.commit()
|
|
public_open_title = public_open.full_title
|
|
|
|
private_open: Lexicon = make.lexicon()
|
|
private_open.public = False
|
|
db.session.commit()
|
|
private_open_title = private_open.full_title
|
|
|
|
with app.test_client() as client:
|
|
auth.login(client)
|
|
|
|
# Check that lexicons appear if they should
|
|
response = client.get("/home/")
|
|
assert response.status_code == 200
|
|
assert public_joined_title.encode("utf8") in response.data
|
|
assert private_joined_title.encode("utf8") in response.data
|
|
assert public_open_title.encode("utf8") in response.data
|
|
assert private_open_title.encode("utf8") not in response.data
|