def test_simple(self): baseUrl = "MOCK" client = dockerRegistryPythonClient.RegistryClient(baseURL=baseUrl) catalogName = "testCatalogName" tagName = "testTag" digest = "testDigest" qualifiedImageName = catalogName + ":" + tagName dockerContentDigest = 'sha256:realditefdfddfdf' sampleDeleteResponse = {} client.mock.registerNextResponse( reqFnName="delete", url="/v2/" + catalogName + "/manifests/" + dockerContentDigest, data=None, status_code=202, contentBytes=base64.b64encode( json.dumps(sampleDeleteResponse).encode()), contentHeaders={"x-remaining": "0"}, ignoreData=True) sampleImageMetadata = getSampleMetadata(catalogName=catalogName, tagName=tagName, digest=digest) client.mock.registerNextResponse( reqFnName="get", url="/v2/" + catalogName + "/manifests/" + tagName, data=None, status_code=200, contentBytes=base64.b64encode( json.dumps(sampleImageMetadata).encode()), contentHeaders={ "x-remaining": "0", "Docker-Content-Digest": dockerContentDigest }, ignoreData=True) username = "******" password = "******" loginSession = client.getLoginSessionBasedOnBasicAuth( username=username, password=password) imageMetadata = client.getImageMetadata(loginSession, qualifiedImageName) imageMetadata.delete(registryClient=client, loginSession=loginSession)
def test_givenUnknownImage_whenGetImageMetadata_returnsNone(self): baseUrl = "MOCK" client = dockerRegistryPythonClient.RegistryClient(baseURL=baseUrl) username = "******" password = "******" loginSession = client.getLoginSessionBasedOnBasicAuth( username=username, password=password) catalogName = "tmpCat" tagName = "testTag" digest = 'sha256:21914a3e0bafe8c5508a902b80972868934cae3559ec8359f5d1be7638d2d186' dockerContentDigest = 'sha256:realditefdfddfdf' getImageResponse = { "errors": [{ "code": "MANIFEST_UNKNOWN", "message": "manifest unknown", "detail": { "Tag": "tagname" } }] } client.mock.registerNextResponse( reqFnName="get", url="/v2/" + catalogName + "/manifests/" + tagName, data=None, status_code=404, contentBytes=base64.b64encode( json.dumps(getImageResponse).encode()), contentHeaders={ "x-remaining": "0", "Docker-Content-Digest": dockerContentDigest }, ignoreData=True) imageMetadata = client.getImageMetadata( loginSession=loginSession, qualifiedImageName=catalogName + ":" + tagName) self.assertEqual(None, imageMetadata)
def test_givenPaginatedTagResult_whenGetTags_returnThemAll(self): firstResult = ["1", "2", "ffff"] secondResult = ["221", "222", "22ffff"] thirdResult = ["331", "332", "33ffff"] baseUrl = "MOCK" client = dockerRegistryPythonClient.RegistryClient(baseURL=baseUrl) username = "******" password = "******" loginSession = client.getLoginSessionBasedOnBasicAuth( username=username, password=password) def addMockResponse(entries, last=False): mockResponse = {"tags": entries} contentHeaders = { "Link": "</v2/JIM/tags/list?n=100>; rel=\"next\"" } if last: contentHeaders = {} client.mock.registerNextResponse( reqFnName="get", url="/v2/JIM/tags/list?n=100", data=None, status_code=200, contentBytes=base64.b64encode( json.dumps(mockResponse).encode()), contentHeaders=contentHeaders, ignoreData=True) # Mock responses must be added in reverse order! addMockResponse(thirdResult, last=True) addMockResponse(secondResult) addMockResponse(firstResult) catalogs = client.getTagsForCatalogIterator(loginSession=loginSession, catalogName="JIM") recieved = [] for catalog in catalogs: recieved.append(catalog) print("DCC", catalog) self.assertEqual(firstResult + secondResult + thirdResult, recieved)
def test_simple(self): baseUrl = "MOCK" client = dockerRegistryPythonClient.RegistryClient(baseURL=baseUrl) mockResponse = {} client.mock.registerNextResponse( reqFnName="get", url="/v2/", data=None, status_code=200, contentBytes=base64.b64encode(json.dumps(mockResponse).encode()), contentHeaders={"x-remaining": "0"}, ignoreData=True) username = "******" password = "******" loginSession = client.getLoginSessionBasedOnBasicAuth( username=username, password=password) self.assertTrue(loginSession.testValid())
def test_simple(self): baseUrl = "MOCK" client = dockerRegistryPythonClient.RegistryClient(baseURL=baseUrl) username = "******" password = "******" loginSession = client.getLoginSessionBasedOnBasicAuth( username=username, password=password) catalogName = "tmpCat" tagName = "testTag" digest = 'sha256:21914a3e0bafe8c5508a902b80972868934cae3559ec8359f5d1be7638d2d186' dockerContentDigest = 'sha256:realditefdfddfdf' sampleImageMetadata = getSampleMetadata(catalogName=catalogName, tagName=tagName, digest=digest) client.mock.registerNextResponse( reqFnName="get", url="/v2/" + catalogName + "/manifests/" + tagName, data=None, status_code=200, contentBytes=base64.b64encode( json.dumps(sampleImageMetadata).encode()), contentHeaders={ "x-remaining": "0", "Docker-Content-Digest": dockerContentDigest }, ignoreData=True) imageMetadata = client.getImageMetadata( loginSession=loginSession, qualifiedImageName=catalogName + ":" + tagName) self.assertEqual(dockerContentDigest, imageMetadata.getDigest())