def test_put_same_key_for_same_tab_id(client, chart_id: int, dataset_id: int): login(client, "admin") payload = { "dataset_id": dataset_id, "chart_id": chart_id, "form_data": UPDATED_FORM_DATA, } resp = client.put(f"api/v1/explore/form_data/{KEY}?tab_id=1", json=payload) data = json.loads(resp.data.decode("utf-8")) first_key = data.get("key") resp = client.put(f"api/v1/explore/form_data/{KEY}?tab_id=1", json=payload) data = json.loads(resp.data.decode("utf-8")) second_key = data.get("key") assert first_key == second_key
def test_put_different_key_for_no_tab_id(client, dashboard_id: int): login(client, "admin") payload = { "value": INITIAL_VALUE, } resp = client.put( f"api/v1/dashboard/{dashboard_id}/filter_state/{KEY}", json=payload ) data = json.loads(resp.data.decode("utf-8")) first_key = data.get("key") resp = client.put( f"api/v1/dashboard/{dashboard_id}/filter_state/{KEY}", json=payload ) data = json.loads(resp.data.decode("utf-8")) second_key = data.get("key") assert first_key != second_key
def test_put_different_key_for_no_tab_id(client, chart_id: int, datasource: SqlaTable): login(client, "admin") payload = { "datasource_id": datasource.id, "datasource_type": datasource.type, "chart_id": chart_id, "form_data": UPDATED_FORM_DATA, } resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) data = json.loads(resp.data.decode("utf-8")) first_key = data.get("key") resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) data = json.loads(resp.data.decode("utf-8")) second_key = data.get("key") assert first_key != second_key
def test_put_not_owner(client, chart_id: int, dataset_id: int): login(client, "gamma") payload = { "dataset_id": dataset_id, "chart_id": chart_id, "form_data": UPDATED_FORM_DATA, } resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) assert resp.status_code == 404
def test_put_bad_request_non_string(client, chart_id: int, dataset_id: int): login(client, "admin") payload = { "dataset_id": dataset_id, "chart_id": chart_id, "form_data": 1234, } resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) assert resp.status_code == 400
def test_put_not_owner(client, dashboard_id: int): login(client, "gamma") payload = { "value": UPDATED_VALUE, } resp = client.put( f"api/v1/dashboard/{dashboard_id}/filter_state/{KEY}", json=payload ) assert resp.status_code == 403
def test_put_bad_request_non_json_string(client, dashboard_id: int): login(client, "admin") payload = { "value": "foo", } resp = client.put( f"api/v1/dashboard/{dashboard_id}/filter_state/{KEY}", json=payload ) assert resp.status_code == 400
def test_put_access_denied(mock_raise_for_dashboard_access, client, dashboard_id: int): login(client, "admin") mock_raise_for_dashboard_access.side_effect = DashboardAccessDeniedError() payload = { "value": UPDATED_VALUE, } resp = client.put( f"api/v1/dashboard/{dashboard_id}/filter_state/{KEY}", json=payload ) assert resp.status_code == 403
def test_put_access_denied(client, chart_id: int, datasource: SqlaTable): login(client, "gamma") payload = { "datasource_id": datasource.id, "datasource_type": datasource.type, "chart_id": chart_id, "form_data": UPDATED_FORM_DATA, } resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) assert resp.status_code == 404
def test_put_bad_request(client, chart_id: int, datasource: SqlaTable): login(client, "admin") payload = { "datasource_id": datasource.id, "datasource_type": datasource.type, "chart_id": chart_id, "form_data": 1234, } resp = client.put(f"api/v1/explore/form_data/{KEY}", json=payload) assert resp.status_code == 400