def test_linktovirtual(self): static_reponame = self.createNewRepoAndAssertValid() testRPMFilePath = Constants.TEST_RPM_FILE_LOC + Constants.TEST_RPM_FILE_NAME self.upload_testfile(static_reponame, testRPMFilePath) virtual_reponame = unique_repo_name() self.create_virtual_repo_from_static_repo(virtual_reponame, static_reponame) virtual_reponame2 = unique_repo_name() self._execute(["linktovirtual", virtual_reponame2, virtual_reponame]) response = self.helper.do_http_get( "/repo/virtual/" + virtual_reponame2 + "/" + Constants.TEST_RPM_DESTINATION_NAME ) self.assertStatusCode(response, httplib.OK)
def test_linktovirtual(self): static_reponame = self.createNewRepoAndAssertValid() testRPMFilePath = Constants.TEST_RPM_FILE_LOC + Constants.TEST_RPM_FILE_NAME self.upload_testfile(static_reponame, testRPMFilePath) virtual_reponame = unique_repo_name() self.create_virtual_repo_from_static_repo(virtual_reponame, static_reponame) virtual_reponame2 = unique_repo_name() self._execute(['linktovirtual', virtual_reponame2, virtual_reponame]) response = self.helper.do_http_get('/repo/virtual/' + virtual_reponame2 + '/' + Constants.TEST_RPM_DESTINATION_NAME) self.assertStatusCode(response, httplib.OK)
def test_filter_by_name(self): self.createNewRepoAndAssertValid() reponame = 'some-app-321.1.1-' + unique_repo_name() self.repoclient().createStaticRepo(reponame) response = self.helper.do_http_get(Constants.HTTP_PATH_STATIC + ".txt?name=some-app-.*") self.assertEqual(reponame + "\n", response.read())
def test_delete_static_repo(self): reponame = unique_repo_name() self._execute(['create', reponame]) self._execute(['deletestatic', reponame]) response = self.helper.do_http_get('/repo/' + reponame + '/') self.assertStatusCode(response, httplib.NOT_FOUND)
def test_virtual_listing_lists_repos(self): reponame = unique_repo_name() virtualRepoPath = self.config.getVirtualRepoDir()+reponame os.makedirs(virtualRepoPath) response = self.helper.do_http_get(Constants.HTTP_PATH_VIRTUAL+".txt") self.assertTrue(reponame in response.read()) shutil.rmtree(virtualRepoPath)
def test_delete_repo(self): reponame = unique_repo_name() self.repoclient().createStaticRepo(reponame) self.repoclient().delete_static_repo(reponame) response = self.helper.do_http_get('/repo/%s' % reponame) self.assertEqual(httplib.NOT_FOUND, response.status)
def test_virtual_listing_lists_repos(self): reponame = unique_repo_name() virtualRepoPath = self.config.getVirtualRepoDir() + reponame os.makedirs(virtualRepoPath) response = self.helper.do_http_get(Constants.HTTP_PATH_VIRTUAL + ".txt") self.assertTrue(reponame in response.read()) shutil.rmtree(virtualRepoPath)
def test_base_directory_listing(self): repo_name = self.createNewRepoAndAssertValid() self.create_virtual_repo_from_static_repo(unique_repo_name(), repo_name) response = self.helper.do_http_get("/repo/") self.assertStatusCode(response, httplib.OK) msg = response.read() self.assertTrue(repo_name in msg) self.assertTrue('virtual/' in msg)
def test_post_with_duplicate_repo_name(self): reponame = unique_repo_name() self.doHttpPost(Constants.HTTP_PATH_STATIC + '/', "name=" + reponame) response = self.doHttpPost(Constants.HTTP_PATH_STATIC + '/', "name=" + reponame) #double POST -> repo already exists self.assertEquals(response.status, httplib.CONFLICT, "Response for duplicate repo name must be CONFLICT, but was" + str(response.status)) msg = response.read() expected = Constants.API_MSG_DUPLICATE_PREFIX + reponame + Constants.API_MSG_DUPLICATE_SUFFIX self.assertEqual(msg, expected, "Response for duplicate repo name must be " + Constants.API_MSG_DUPLICATE_PREFIX + reponame + Constants.API_MSG_DUPLICATE_SUFFIX)
def test_should_allow_http_redirected_repos(self): virtual_reponame = unique_repo_name() self.repoclient().createVirtualRepo(virtual_reponame, "http://anyhost.com/repo") response = self.helper.do_http_get("/repo/virtual/" + virtual_reponame + "/repodata/repomd.xml") self.assertStatusCode(response, httplib.FOUND) self.assertEquals(response.getheader('Location'), 'http://anyhost.com/repo/repodata/repomd.xml')
def test_remote_server(self): repoclient = HttpClient(self.HOST_NAME, self.PORT) helper = IntegrationTestHelper(self.HOST_NAME, self.PORT) self.assertEquals(httplib.OK, helper.do_http_get('/repo/').status, 'returned response was not ok (200).') repo_name = unique_repo_name() repoclient.createStaticRepo(repo_name) repoclient.uploadRpm(repo_name, 'src/test/resources/test-artifact.rpm') path_to_rpm = "/repo/%s/noarch/test-artifact-1.2-1.noarch.rpm" % (repo_name) self.assertEquals(httplib.OK, helper.do_http_get(path_to_rpm).status) repoclient.generateMetadata(repo_name) self.assertEquals(httplib.OK, helper.do_http_get('/repo/%s/repodata/repomd.xml' % repo_name).status)
def test_post_with_duplicate_repo_name(self): reponame = unique_repo_name() self.doHttpPost(Constants.HTTP_PATH_STATIC + '/', "name=" + reponame) response = self.doHttpPost( Constants.HTTP_PATH_STATIC + '/', "name=" + reponame) #double POST -> repo already exists self.assertEquals( response.status, httplib.CONFLICT, "Response for duplicate repo name must be CONFLICT, but was" + str(response.status)) msg = response.read() expected = Constants.API_MSG_DUPLICATE_PREFIX + reponame + Constants.API_MSG_DUPLICATE_SUFFIX self.assertEqual( msg, expected, "Response for duplicate repo name must be " + Constants.API_MSG_DUPLICATE_PREFIX + reponame + Constants.API_MSG_DUPLICATE_SUFFIX)
def test_should_not_create_repo(self): reponame = unique_repo_name() testRPMFilePath = Constants.TEST_RPM_FILE_LOC + Constants.TEST_RPM_FILE_NAME self.assertRaises(RepoException, HttpClient.uploadRpm, self.repoclient(), reponame, testRPMFilePath)
def test_generate_meta_should_fail_for_not_existing_repos(self): repo_name = unique_repo_name() self.assertRaises(RepoException, self.repoclient().generateMetadata, repo_name)
def createNewRepoAndAssertValid(self): reponame = unique_repo_name() response = self.repoclient().createStaticRepo(reponame) msg = response.read() self.assertCreaterepoReplyValid(msg, reponame) return reponame
def test_filter_by_name(self): self.createNewRepoAndAssertValid() reponame = 'some-app-321.1.1-' + unique_repo_name() self.repoclient().createStaticRepo(reponame) response = self.helper.do_http_get(Constants.HTTP_PATH_STATIC+".txt?name=some-app-.*") self.assertEqual(reponame + "\n", response.read())
def setUp(self): self.newRepoName = unique_repo_name() self.createdRepoDir = self.configService.getStaticRepoDir(self.newRepoName) self.mockedscheduler = self.get_mocked_scheduler()
def test_create_repo(self): reponame = unique_repo_name() self._execute(["create", reponame]) response = self.helper.do_http_get("/repo/" + reponame + "/") self.assertStatusCode(response, httplib.OK)