mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
fix: ensure that users viewing chart does not automatically save edit data (#16077)
* add last_change_at migration * add last_saved_by db migration * finish rest of api migration * run precommit * fix name * run precommitt * remove unused mods * merge migrations * Update superset/migrations/versions/6d20ba9ecb33_add_last_saved_at_to_slice_model.py Co-authored-by: Beto Dealmeida <roberto@dealmeida.net> * Update superset/migrations/versions/6d20ba9ecb33_add_last_saved_at_to_slice_model.py Co-authored-by: Beto Dealmeida <roberto@dealmeida.net> * Update superset/migrations/versions/f6196627326f_update_chart_permissions.py Co-authored-by: Beto Dealmeida <roberto@dealmeida.net> * fix test * precommit * remove print * fix test * change test * test commit * test 2 * test 3 * third time the charm * fix put req Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
This commit is contained in:
committed by
GitHub
parent
63ace7b288
commit
f0e3b68cc2
@@ -17,15 +17,18 @@
|
||||
# pylint: disable=no-self-use, invalid-name
|
||||
|
||||
import json
|
||||
from datetime import datetime
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
import yaml
|
||||
from flask import g
|
||||
|
||||
from superset import db, security_manager
|
||||
from superset.charts.commands.exceptions import ChartNotFoundError
|
||||
from superset.charts.commands.export import ExportChartsCommand
|
||||
from superset.charts.commands.importers.v1 import ImportChartsCommand
|
||||
from superset.charts.commands.update import UpdateChartCommand
|
||||
from superset.commands.exceptions import CommandInvalidError
|
||||
from superset.commands.importers.exceptions import IncorrectVersionError
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
@@ -275,3 +278,26 @@ class TestImportChartsCommand(SupersetTestCase):
|
||||
"database_name": ["Missing data for required field."],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TestChartsUpdateCommand(SupersetTestCase):
|
||||
@patch("superset.views.base.g")
|
||||
@patch("superset.security.manager.g")
|
||||
@pytest.mark.usefixtures("load_energy_table_with_slice")
|
||||
def test_update_v1_response(self, mock_sm_g, mock_g):
|
||||
""""Test that a chart command updates properties"""
|
||||
pk = db.session.query(Slice).all()[0].id
|
||||
actor = security_manager.find_user(username="admin")
|
||||
mock_g.user = mock_sm_g.user = actor
|
||||
model_id = pk
|
||||
json_obj = {
|
||||
"description": "test for update",
|
||||
"cache_timeout": None,
|
||||
"owners": [1],
|
||||
}
|
||||
command = UpdateChartCommand(actor, model_id, json_obj)
|
||||
last_saved_before = db.session.query(Slice).get(pk).last_saved_at
|
||||
command.run()
|
||||
chart = db.session.query(Slice).get(pk)
|
||||
assert chart.last_saved_at != last_saved_before
|
||||
assert chart.last_saved_by == actor
|
||||
|
||||
Reference in New Issue
Block a user