Skip to content

Commit 3f5916e

Browse files
committed
chore(tests): Add publish/unpublish to preview test.
1 parent e48dd9b commit 3f5916e

File tree

4 files changed

+55
-5
lines changed

4 files changed

+55
-5
lines changed

experimenter/experimenter/kinto/client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ def __init__(self, collection, review=True):
1616
)
1717
self.review = review
1818
self.collection_data = None
19+
self.read_bucket = (
20+
settings.KINTO_BUCKET_WORKSPACE if not review else settings.KINTO_BUCKET_MAIN
21+
)
1922

2023
def _fetch_collection_data(self):
2124
self.collection_data = (
@@ -94,6 +97,6 @@ def get_main_records(self):
9497
return {
9598
r["id"]: r
9699
for r in self.kinto_http_client.get_records(
97-
bucket=settings.KINTO_BUCKET_MAIN, collection=self.collection
100+
bucket=self.read_bucket, collection=self.collection
98101
)
99102
}

experimenter/tests/integration/nimbus/conftest.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,11 @@ def _verify_url(request, base_url):
147147

148148
@pytest.fixture
149149
def kinto_client(default_data):
150-
kinto_url = os.getenv("INTEGRATION_TEST_KINTO_URL", "http://kinto:8888/v1")
151-
return KintoClient(
152-
APPLICATION_KINTO_COLLECTION[default_data.application], server_url=kinto_url
153-
)
150+
def _kinto_client(collection=APPLICATION_KINTO_COLLECTION[default_data.application]):
151+
kinto_url = os.getenv("INTEGRATION_TEST_KINTO_URL", "http://kinto:8888/v1")
152+
return KintoClient(collection=collection, server_url=kinto_url)
153+
154+
return _kinto_client
154155

155156

156157
@pytest.fixture

experimenter/tests/integration/nimbus/kinto/client.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
KINTO_COLLECTION_DESKTOP = "nimbus-desktop-experiments"
99
KINTO_COLLECTION_MOBILE = "nimbus-mobile-experiments"
1010
KINTO_COLLECTION_WEB = "nimbus-web-experiments"
11+
KINTO_COLLECTION_PREVIEW = "nimbus-preview"
1112
KINTO_BUCKET_WORKSPACE = "main-workspace"
1213
KINTO_REVIEW_STATUS = "to-review"
1314
KINTO_REJECTED_STATUS = "work-in-progress"
@@ -64,3 +65,8 @@ def reject(self):
6465
return
6566
time.sleep(2)
6667
raise Exception("Unable to reject kinto review")
68+
69+
def get_record_data(self):
70+
return self.kinto_http_client.get_records(
71+
collection=self.collection, bucket=KINTO_BUCKET_WORKSPACE
72+
)

experimenter/tests/integration/nimbus/test_remote_settings.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import time
2+
13
import pytest
24

35
from nimbus.pages.experimenter.home import HomePage
@@ -320,3 +322,41 @@ def test_create_new_experiment_timeout_remote_settings(
320322
summary = SummaryPage(selenium, experiment_url).open()
321323
summary.launch_and_approve()
322324
summary.wait_for_timeout_alert()
325+
326+
327+
@pytest.mark.remote_settings_launch
328+
def test_create_new_experiment_publish_to_preview_and_unpublish(
329+
selenium,
330+
experiment_url,
331+
kinto_client,
332+
base_url,
333+
application,
334+
default_data_api,
335+
experiment_slug,
336+
):
337+
timeout = time.time() + 120
338+
records_before = len(kinto_client(collection="nimbus-preview").get_record_data())
339+
340+
helpers.create_experiment(experiment_slug, application, default_data_api)
341+
342+
summary = SummaryPage(selenium, experiment_url).open()
343+
summary.launch_to_preview()
344+
345+
while time.time() < timeout:
346+
preview_data = kinto_client(collection="nimbus-preview").get_record_data()
347+
if any(record.get("slug") == experiment_slug for record in preview_data):
348+
break
349+
time.sleep(15)
350+
else:
351+
pytest.fail("Experiment not published to preview in time")
352+
353+
summary = SummaryPage(selenium, experiment_url).open()
354+
summary.back_to_draft()
355+
356+
while time.time() < timeout:
357+
records_after = kinto_client(collection="nimbus-preview").get_record_data()
358+
if len(records_after) == records_before:
359+
break
360+
time.sleep(15)
361+
else:
362+
pytest.fail("Experiment not unpublished from preview in time")

0 commit comments

Comments
 (0)