Label editing
This commit is contained in:
@@ -84,6 +84,32 @@ def test_admin_can_toggle_privileges_without_removing_last_admin():
|
||||
assert last_admin.status_code == 400
|
||||
|
||||
|
||||
def test_users_manage_owned_labels_and_admin_can_delete_any_label():
|
||||
alice_headers = login_headers('alice')
|
||||
created = client.post('/api/user/labels', headers=alice_headers, json={'name': 'My Label'})
|
||||
assert created.status_code == 201
|
||||
label = created.json()
|
||||
assert label['name'] == '#My Label'
|
||||
|
||||
edited = client.put(f"/api/user/labels/{label['id']}", headers=alice_headers, json={'name': '#Renamed'})
|
||||
assert edited.status_code == 200
|
||||
assert edited.json()['name'] == '#Renamed'
|
||||
|
||||
denied = client.put(f"/api/user/labels/{label['id']}", headers=login_headers('bob'), json={'name': '#Nope'})
|
||||
assert denied.status_code == 404
|
||||
assert client.delete(f"/api/user/labels/{label['id']}", headers=login_headers('bob')).status_code == 404
|
||||
|
||||
admin_delete = client.delete(f"/api/admin/labels/{label['id']}", headers=alice_headers)
|
||||
assert admin_delete.status_code == 200
|
||||
|
||||
|
||||
def test_labels_page_renders_authenticated_management_shell():
|
||||
page = client.get('/labels')
|
||||
assert page.status_code == 200
|
||||
assert 'Labels' in page.text
|
||||
assert 'labels.js?v=1' in page.text
|
||||
|
||||
|
||||
def test_submit_link_stores_cleaned_url_and_public_feed():
|
||||
response = client.post('/api/links', headers=login_headers(), json={
|
||||
'title': 'Example page',
|
||||
|
||||
@@ -7,7 +7,7 @@ def test_database_migrations_are_versioned_and_idempotent():
|
||||
connection = sqlite3.connect(':memory:')
|
||||
|
||||
apply_migrations(connection)
|
||||
assert get_schema_version(connection) == 3
|
||||
assert get_schema_version(connection) == 4
|
||||
tables = {
|
||||
row[0]
|
||||
for row in connection.execute(
|
||||
@@ -17,11 +17,13 @@ def test_database_migrations_are_versioned_and_idempotent():
|
||||
assert {
|
||||
'users', 'tokens', 'links', 'plugins', 'user_plugin_config', 'tags', 'link_tags'
|
||||
} <= tables
|
||||
columns = {row[1] for row in connection.execute('PRAGMA table_info(tags)')}
|
||||
assert 'created_by' in columns
|
||||
seed_default_tags(connection)
|
||||
seeded_tags = {row[0] for row in connection.execute('SELECT name FROM tags')}
|
||||
assert set(DEFAULT_TAGS) <= seeded_tags
|
||||
|
||||
apply_migrations(connection)
|
||||
assert get_schema_version(connection) == 3
|
||||
assert get_schema_version(connection) == 4
|
||||
|
||||
connection.close()
|
||||
Reference in New Issue
Block a user