Beispiel #1
0
    def test_get__good(self, client, plan_factory, preflight_result_factory):
        plan = plan_factory()
        preflight = preflight_result_factory(
            plan=plan,
            user=client.user,
            org_id=client.user.org_id,
        )
        response = client.get(reverse("plan-preflight", kwargs={"pk":
                                                                plan.id}))

        assert response.status_code == 200
        assert response.json() == {
            "id": str(preflight.id),
            "instance_url": client.user.instance_url,
            "org_id": "00Dxxxxxxxxxxxxxxx",
            "plan": str(plan.id),
            "created_at": format_timestamp(preflight.created_at),
            "is_valid": True,
            "status": "started",
            "results": {},
            "error_count": 0,
            "warning_count": 0,
            "is_ready": False,
            "user": str(client.user.id),
            "edited_at": format_timestamp(preflight.edited_at),
        }
Beispiel #2
0
    def test_job__is_public_anon(self, anon_client, job_factory):
        job = job_factory(is_public=True, org_id="00Dxxxxxxxxxxxxxxx")
        url = reverse("job-detail", kwargs={"pk": job.id})
        response = anon_client.get(url)

        assert response.status_code == 200
        assert response.json() == {
            "id": str(job.id),
            "creator": None,
            "plan": str(job.plan.id),
            "instance_url": None,
            "org_id": None,
            "steps": [],
            "results": {},
            "error_count": 0,
            "warning_count": 0,
            "created_at": format_timestamp(job.created_at),
            "enqueued_at": None,
            "job_id": None,
            "status": "started",
            "org_name": None,
            "org_type": "",
            "is_production_org": False,
            "is_public": True,
            "user_can_edit": False,
            "message": "",
            "error_message": "",
            "edited_at": format_timestamp(job.edited_at),
            "product_slug": str(job.plan.version.product.slug),
            "version_label": str(job.plan.version.label),
            "version_is_most_recent": True,
            "plan_slug": str(job.plan.slug),
        }
Beispiel #3
0
    def test_job__is_public(self, client, job_factory):
        job = job_factory(is_public=True,
                          org_name="Secret Org",
                          org_id="00Dxxxxxxxxxxxxxxx")
        response = client.get(reverse("job-detail", kwargs={"pk": job.id}))

        assert response.status_code == 200
        assert response.json() == {
            "id": str(job.id),
            "creator": None,
            "plan": str(job.plan.id),
            "organization_url": None,
            "org_id": None,
            "steps": [],
            "results": {},
            "created_at": format_timestamp(job.created_at),
            "enqueued_at": None,
            "job_id": None,
            "status": "started",
            "org_name": None,
            "org_type": "",
            "is_production_org": False,
            "error_count": 0,
            "warning_count": 0,
            "is_public": True,
            "user_can_edit": False,
            "message": "",
            "error_message": "",
            "edited_at": format_timestamp(job.edited_at),
        }
Beispiel #4
0
    def test_queryset_anonymous_scratch_org(self, anon_client, job_factory,
                                            scratch_org_factory):
        org_id = "00Dyyyyyyyyyyyyyyy"
        uuid = str(uuid4())
        job = job_factory(
            is_public=False,
            org_id=org_id,
        )
        scratch_org_factory(
            status=ScratchOrg.Status.complete,
            org_id=org_id,
            uuid=uuid,
        )
        url = reverse("job-detail", kwargs={"pk": job.id})
        session = anon_client.session
        session["scratch_org_id"] = uuid
        session.save()
        response = anon_client.get(url)

        assert response.status_code == 200
        assert response.json() == {
            "id": str(job.id),
            "creator": None,
            "plan": str(job.plan.id),
            "instance_url": None,
            "org_id": None,
            "steps": [],
            "results": {},
            "error_count": 0,
            "warning_count": 0,
            "created_at": format_timestamp(job.created_at),
            "enqueued_at": None,
            "job_id": None,
            "status": "started",
            "org_name": None,
            "org_type": "",
            "is_production_org": False,
            "is_public": False,
            "user_can_edit": False,
            "message": "",
            "error_message": "",
            "edited_at": format_timestamp(job.edited_at),
            "product_slug": str(job.plan.version.product.slug),
            "version_label": str(job.plan.version.label),
            "version_is_most_recent": True,
            "plan_slug": str(job.plan.slug),
        }
Beispiel #5
0
    def test_job__your_own(self, client, user_factory, job_factory):
        user = user_factory(org_name="Secret Org")
        client.force_login(user)
        job = job_factory(user=user, org_id=client.user.org_id)
        response = client.get(reverse("job-detail", kwargs={"pk": job.id}))

        assert response.status_code == 200
        assert response.json() == {
            "id": str(job.id),
            "creator": {
                "username": job.user.sf_username,
                "is_staff": False
            },
            "plan": str(job.plan.id),
            "steps": [],
            "instance_url": "https://example.com",
            "org_id": "00Dxxxxxxxxxxxxxxx",
            "results": {},
            "created_at": format_timestamp(job.created_at),
            "enqueued_at": None,
            "job_id": None,
            "status": "started",
            "org_name": "Secret Org",
            "org_type": "",
            "is_production_org": False,
            "error_count": 0,
            "warning_count": 0,
            "is_public": False,
            "user_can_edit": True,
            "message": "",
            "error_message": "",
            "edited_at": format_timestamp(job.edited_at),
            "product_slug": str(job.plan.version.product.slug),
            "version_label": str(job.plan.version.label),
            "version_is_most_recent": True,
            "plan_slug": str(job.plan.slug),
        }
Beispiel #6
0
    def test_version(self, client, version_factory):
        version = version_factory()
        response = client.get(
            reverse("version-detail", kwargs={"pk": version.id}))

        assert response.status_code == 200
        assert response.json() == {
            "id": str(version.id),
            "product": str(version.product.id),
            "label": version.label,
            "description": "A sample version.",
            "created_at": format_timestamp(version.created_at),
            "primary_plan": None,
            "secondary_plan": None,
            "is_listed": True,
        }
Beispiel #7
0
 def test_get_first_page(self, rf, product_factory, version_factory, user_factory):
     request = rf.get("")
     request.query_params = {}
     request.user = user_factory()
     product = product_factory(is_listed=True)
     version = version_factory(product=product)
     category = product.category
     serializer = ProductCategorySerializer(category, context={"request": request})
     results = serializer.data["first_page"].pop("results")
     assert serializer.data["first_page"] == {
         "count": 1,
         "previous": None,
         "next": None,
     }
     expected = [
         {
             "id": str(product.id),
             "title": product.title,
             "description": "<p>This is a sample product.</p>",
             "short_description": "",
             "click_through_agreement": "",
             "category": "salesforce",
             "color": "#FFFFFF",
             "icon": None,
             "image": None,
             "most_recent_version": {
                 "id": str(version.id),
                 "product": str(product.id),
                 "label": str(version.label),
                 "description": "A sample version.",
                 "created_at": format_timestamp(version.created_at),
                 "primary_plan": None,
                 "secondary_plan": None,
                 "is_listed": True,
             },
             "slug": product.slug,
             "old_slugs": [],
             "is_allowed": True,
             "is_listed": True,
             "order_key": 0,
             "not_allowed_instructions": None,
             "layout": "Default",
         }
     ]
     assert results == expected