mirror of
https://github.com/apache/superset.git
synced 2026-06-04 07:09:22 +00:00
feat: add samples endpoint (#20170)
This commit is contained in:
@@ -1863,3 +1863,43 @@ class TestDatasetApi(SupersetTestCase):
|
||||
|
||||
db.session.delete(table_w_certification)
|
||||
db.session.commit()
|
||||
|
||||
@pytest.mark.usefixtures("create_datasets")
|
||||
def test_get_dataset_samples(self):
|
||||
"""
|
||||
Dataset API: Test get dataset samples
|
||||
"""
|
||||
dataset = self.get_fixture_datasets()[0]
|
||||
|
||||
self.login(username="admin")
|
||||
uri = f"api/v1/dataset/{dataset.id}/samples"
|
||||
|
||||
# 1. should cache data
|
||||
# feeds data
|
||||
self.client.get(uri)
|
||||
# get from cache
|
||||
rv = self.client.get(uri)
|
||||
rv_data = json.loads(rv.data)
|
||||
assert rv.status_code == 200
|
||||
assert "result" in rv_data
|
||||
assert rv_data["result"]["cached_dttm"] is not None
|
||||
|
||||
# 2. should through cache
|
||||
uri2 = f"api/v1/dataset/{dataset.id}/samples?force=true"
|
||||
# feeds data
|
||||
self.client.get(uri2)
|
||||
# force query
|
||||
rv2 = self.client.get(uri2)
|
||||
rv_data2 = json.loads(rv2.data)
|
||||
assert rv_data2["result"]["cached_dttm"] is None
|
||||
|
||||
# 3. data precision
|
||||
assert "colnames" in rv_data2["result"]
|
||||
assert "coltypes" in rv_data2["result"]
|
||||
assert "data" in rv_data2["result"]
|
||||
|
||||
eager_samples = dataset.database.get_df(
|
||||
f"select * from {dataset.table_name}"
|
||||
f' limit {self.app.config["SAMPLES_ROW_LIMIT"]}'
|
||||
).to_dict(orient="records")
|
||||
assert eager_samples == rv_data2["result"]["data"]
|
||||
|
||||
Reference in New Issue
Block a user