|
25 | 25 | def _assert_has_cors_headers(headers):
|
26 | 26 | assert headers["Access-Control-Allow-Origin"] == "*"
|
27 | 27 | assert headers["Access-Control-Allow-Headers"] == (
|
28 |
| - "Content-Type, If-Match, If-Modified-Since, If-None-Match, " |
29 |
| - "If-Unmodified-Since" |
| 28 | + "Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since" |
30 | 29 | )
|
31 | 30 | assert headers["Access-Control-Allow-Methods"] == "GET"
|
32 | 31 | assert headers["Access-Control-Max-Age"] == "86400"
|
@@ -208,6 +207,7 @@ def test_no_files_no_serial(self, db_request, content_type, renderer_override):
|
208 | 207 | context = {
|
209 | 208 | "meta": {"_last-serial": 0, "api-version": API_VERSION},
|
210 | 209 | "name": project.normalized_name,
|
| 210 | + "project-status": {"status": "active"}, |
211 | 211 | "files": [],
|
212 | 212 | "versions": [],
|
213 | 213 | "alternate-locations": [],
|
@@ -240,6 +240,7 @@ def test_no_files_with_serial(self, db_request, content_type, renderer_override)
|
240 | 240 | context = {
|
241 | 241 | "meta": {"_last-serial": je.id, "api-version": API_VERSION},
|
242 | 242 | "name": project.normalized_name,
|
| 243 | + "project-status": {"status": "active"}, |
243 | 244 | "files": [],
|
244 | 245 | "versions": [],
|
245 | 246 | "alternate-locations": sorted(al.url for al in als),
|
@@ -278,6 +279,7 @@ def test_with_files_no_serial(self, db_request, content_type, renderer_override)
|
278 | 279 | context = {
|
279 | 280 | "meta": {"_last-serial": 0, "api-version": API_VERSION},
|
280 | 281 | "name": project.normalized_name,
|
| 282 | + "project-status": {"status": "active"}, |
281 | 283 | "versions": release_versions,
|
282 | 284 | "files": [
|
283 | 285 | {
|
@@ -330,6 +332,7 @@ def test_with_files_with_serial(self, db_request, content_type, renderer_overrid
|
330 | 332 | context = {
|
331 | 333 | "meta": {"_last-serial": je.id, "api-version": API_VERSION},
|
332 | 334 | "name": project.normalized_name,
|
| 335 | + "project-status": {"status": "active"}, |
333 | 336 | "versions": release_versions,
|
334 | 337 | "files": [
|
335 | 338 | {
|
@@ -419,6 +422,7 @@ def test_with_files_with_version_multi_digit(
|
419 | 422 | context = {
|
420 | 423 | "meta": {"_last-serial": je.id, "api-version": API_VERSION},
|
421 | 424 | "name": project.normalized_name,
|
| 425 | + "project-status": {"status": "active"}, |
422 | 426 | "versions": release_versions,
|
423 | 427 | "files": [
|
424 | 428 | {
|
@@ -473,6 +477,66 @@ def test_with_files_quarantined_omitted_from_index(
|
473 | 477 | context = {
|
474 | 478 | "meta": {"_last-serial": 0, "api-version": API_VERSION},
|
475 | 479 | "name": project.normalized_name,
|
| 480 | + "project-status": {"status": "quarantined"}, |
| 481 | + "files": [], |
| 482 | + "versions": [], |
| 483 | + "alternate-locations": [], |
| 484 | + } |
| 485 | + context = _update_context(context, content_type, renderer_override) |
| 486 | + |
| 487 | + assert simple.simple_detail(project, db_request) == context |
| 488 | + |
| 489 | + if renderer_override is not None: |
| 490 | + assert db_request.override_renderer == renderer_override |
| 491 | + |
| 492 | + @pytest.mark.parametrize( |
| 493 | + "archive_marker", |
| 494 | + [ |
| 495 | + "archived", |
| 496 | + "archived-noindex", |
| 497 | + ], |
| 498 | + ) |
| 499 | + @pytest.mark.parametrize( |
| 500 | + ("content_type", "renderer_override"), |
| 501 | + CONTENT_TYPE_PARAMS, |
| 502 | + ) |
| 503 | + def test_with_archived_project( |
| 504 | + self, db_request, archive_marker, content_type, renderer_override |
| 505 | + ): |
| 506 | + db_request.accept = content_type |
| 507 | + project = ProjectFactory.create(lifecycle_status=archive_marker) |
| 508 | + _ = ReleaseFactory.create_batch(3, project=project) |
| 509 | + |
| 510 | + context = { |
| 511 | + "meta": {"_last-serial": 0, "api-version": API_VERSION}, |
| 512 | + "name": project.normalized_name, |
| 513 | + "project-status": {"status": "archived"}, |
| 514 | + "files": [], |
| 515 | + "versions": [], |
| 516 | + "alternate-locations": [], |
| 517 | + } |
| 518 | + context = _update_context(context, content_type, renderer_override) |
| 519 | + |
| 520 | + assert simple.simple_detail(project, db_request) == context |
| 521 | + |
| 522 | + if renderer_override is not None: |
| 523 | + assert db_request.override_renderer == renderer_override |
| 524 | + |
| 525 | + @pytest.mark.parametrize( |
| 526 | + ("content_type", "renderer_override"), |
| 527 | + CONTENT_TYPE_PARAMS, |
| 528 | + ) |
| 529 | + def test_with_quarantine_exit_project( |
| 530 | + self, db_request, content_type, renderer_override |
| 531 | + ): |
| 532 | + db_request.accept = content_type |
| 533 | + project = ProjectFactory.create(lifecycle_status="quarantine-exit") |
| 534 | + _ = ReleaseFactory.create_batch(3, project=project) |
| 535 | + |
| 536 | + context = { |
| 537 | + "meta": {"_last-serial": 0, "api-version": API_VERSION}, |
| 538 | + "name": project.normalized_name, |
| 539 | + "project-status": {"status": "active"}, |
476 | 540 | "files": [],
|
477 | 541 | "versions": [],
|
478 | 542 | "alternate-locations": [],
|
@@ -564,6 +628,7 @@ def route_url(route, **kw):
|
564 | 628 | context = {
|
565 | 629 | "meta": {"_last-serial": je.id, "api-version": API_VERSION},
|
566 | 630 | "name": project.normalized_name,
|
| 631 | + "project-status": {"status": "active"}, |
567 | 632 | "versions": ["1.0.0"],
|
568 | 633 | "files": [
|
569 | 634 | {
|
|
0 commit comments