def test_get_product_with_rfes_and_inheritance(self): osp12 = factories.ProductFactory(name="OSP12") osp13 = factories.ProductFactory(name="OSP13", inherit=osp12) osp14 = factories.ProductFactory(name="OSP14", inherit=osp13) rfe = factories.RFEFactory(product=osp12) request = self.client.get("/api/products/%s" % osp14.id) rfe_returned = request.data["rfes"][0] self.assertEqual(rfe.id, rfe_returned["id"]) self.assertEqual(osp12.id, rfe_returned["product_id"])
def test_partial_update_product(self): product = factories.ProductFactory() self.assertNotEqual("updated", product.name) request = self.client.patch("/api/products/%s" % product.id, {"name": "updated"}) self.assertEqual(200, request.status_code) product_updated = models.Product.objects.get(id=product.id) self.assertEqual("updated", product_updated.name)
def test_rfe_serializer(self): product = factories.ProductFactory() serializer = serializers.RFESerializer( data={ "name": "serializer", "url": "https://example.org/rfes/1", "product": product.id, }) serializer.is_valid() rfe = serializer.save() rfe.refresh_from_db() self.assertEqual(rfe.name, "serializer")
def test_update_product(self): product = factories.ProductFactory() self.assertNotEqual("updated", product.name) request = self.client.put( "/api/products/%s" % product.id, { "name": "updated", "url": "https://example.org/products/1" }, ) self.assertEqual(200, request.status_code) product_updated = models.Product.objects.get(id=product.id) self.assertEqual("updated", product_updated.name)
def test_upload_no_file(self): product = factories.ProductFactory() response = self.client.post( "/api/upload", { "product": product.id, "url": "https://example.org/jobs/1/", "build": "2018-06-20.1", "result": "FAILURE", }, format="multipart", ) self.assertEqual(201, response.status_code) job_result = models.JobResult.objects.get( build="2018-06-20.1", url="https://example.org/jobs/1/", product=product.id) self.assertEquals(job_result.jobname, "jobs")
def test_create_rfe(self): product = factories.ProductFactory() test1 = factories.TestFactory(name="test id 1") test2 = factories.TestFactory(name="test id 2") self.assertEqual(0, models.RFE.objects.count()) data = { "name": "p1", "url": "https://example.org/rfes/1", "product": product.id, "tests": [test1.id, test2.id], } request = self.client.post( "/api/rfes", data, ) self.assertEqual(201, request.status_code) self.assertEqual(1, models.RFE.objects.count()) for key in data: self.assertIn(key, request.data) self.assertEqual(data[key], request.data[key])
def test_upload(self): xmlfile = open( os.path.join(os.path.dirname(__file__), "tempest-results-full.1.xml")) product = factories.ProductFactory() test = factories.TestFactory( name= "tempest.api.compute.admin.test_simple_tenant_usage_negative.TenantUsagesNegativeTestJSON.test_get_usage_tenant_with_empty_tenant_id" ) rfe = factories.RFEFactory(product=product, tests=[test]) response = self.client.post( "/api/upload", { "product": product.id, "url": "https://example.org/jobs/1", "build": "2018-06-20.1", "file": xmlfile, "result": "SUCCESS", }, format="multipart", ) self.assertEqual(201, response.status_code) test = models.Test.objects.get( name= "tempest.api.compute.admin.test_simple_tenant_usage_negative.TenantUsagesNegativeTestJSON.test_get_usage_tenant_with_empty_tenant_id" ) job_result = models.JobResult.objects.get( build="2018-06-20.1", url="https://example.org/jobs/1", product=product.id) self.assertEquals(job_result.jobname, "jobs") test_result = models.TestResult.objects.get(test=test, job_result=job_result) self.assertTrue(test_result.result) rfe_result = models.RFEResult.objects.get(rfe=rfe) self.assertTrue(rfe_result.result) self.assertEquals(rfe_result.percent, 100.00)
def test_upload(self): product = factories.ProductFactory() test = factories.TestFactory(name=TEST_NAME) rfe = factories.RFEFactory(product=product, tests=[test]) test = models.Test.objects.get(name=TEST_NAME) self.upload_file(product, "tempest-results-full.1.xml") job_result = models.JobResult.objects.get( build="2018-06-20.1", url="https://example.org/jobs/1", product=product.id) self.assertEquals(job_result.jobname, "jobs") test_result = models.TestResult.objects.get(test=test, job_result=job_result) self.assertTrue(test_result.result) rfe_result = models.RFEResult.objects.get(rfe=rfe) self.assertTrue(rfe_result.result) self.assertEquals(rfe_result.percent, 100.00) nb = models.TestResult.objects.filter(job_result=job_result).count() # change in tempest-results-full.2.xml is one test is failing self.upload_file(product, "tempest-results-full.2.xml") nb_job_result = models.JobResult.objects.all().count() self.assertEquals(nb_job_result, 1) nb2 = models.TestResult.objects.filter(job_result=job_result).count() self.assertEquals(nb, nb2)
def test_view_products(self): product = factories.ProductFactory() request = self.client.get("/api/view/products") self.assertEqual(product.name, request.data[0]["name"])
def test_delete_product(self): product = factories.ProductFactory() self.assertEqual(1, models.Product.objects.all().count()) request = self.client.delete("/api/products/%s" % product.id) self.assertEqual(204, request.status_code) self.assertEqual(0, models.Product.objects.all().count())
def test_product_factory(self): product = factories.ProductFactory(name="factory") self.assertEqual(product.name, "factory")
def test_get_product(self): product = factories.ProductFactory() request = self.client.get("/api/products/%s" % product.id) self.assertEqual(product.name, request.data["name"])