mirror of https://github.com/logos-co/open-law.git
61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
|
# flake8: noqa F501
|
||
|
from flask import current_app as Response
|
||
|
from flask.testing import FlaskClient, FlaskCliRunner
|
||
|
|
||
|
from app import models as m, db
|
||
|
from tests.utils import login, logout
|
||
|
|
||
|
|
||
|
def test_create_tags_on_book_edit(client: FlaskClient):
|
||
|
_, user = login(client)
|
||
|
|
||
|
book: m.Book = m.Book(label="Test book", user_id=user.id).save()
|
||
|
m.BookVersion = m.BookVersion(semver="1.0.0", book_id=book.id).save()
|
||
|
|
||
|
assert not book.tags
|
||
|
|
||
|
tags = "tag1,tag2,tag3"
|
||
|
|
||
|
client.post(
|
||
|
f"/book/{book.id}/edit",
|
||
|
data=dict(book_id=book.id, label=book.label, tags=tags),
|
||
|
follow_redirects=True,
|
||
|
)
|
||
|
|
||
|
book: m.Book = m.Book.query.first()
|
||
|
|
||
|
splitted_tags = [tag.title() for tag in tags.split(",")]
|
||
|
assert len(book.tags) == 3
|
||
|
for tag in book.tags:
|
||
|
tag: m.Tag
|
||
|
assert tag.name in splitted_tags
|
||
|
|
||
|
tags_from_db: m.Tag = m.Tag.query.all()
|
||
|
assert len(tags_from_db) == 3
|
||
|
|
||
|
tags = "tag1,tag2,tag4"
|
||
|
|
||
|
client.post(
|
||
|
f"/book/{book.id}/edit",
|
||
|
data=dict(book_id=book.id, label=book.label, tags=tags),
|
||
|
follow_redirects=True,
|
||
|
)
|
||
|
|
||
|
tags_from_db: m.Tag = m.Tag.query.all()
|
||
|
assert len(tags_from_db) == 4
|
||
|
book: m.Book = m.Book.query.first()
|
||
|
assert len(book.tags) == 3
|
||
|
|
||
|
tags = "1" * 33
|
||
|
|
||
|
client.post(
|
||
|
f"/book/{book.id}/edit",
|
||
|
data=dict(book_id=book.id, label=book.label, tags=tags),
|
||
|
follow_redirects=True,
|
||
|
)
|
||
|
|
||
|
tags_from_db: m.Tag = m.Tag.query.all()
|
||
|
assert len(tags_from_db) == 4
|
||
|
book: m.Book = m.Book.query.first()
|
||
|
assert len(book.tags) == 0
|