示例#1
0
    def test_name_not_defined(self):
        """Without name return :exc:`InvalidRequestException`
        """
        with self.assertRaises(InvalidRequestException):
            ImageName().run(".*", Payload(PAYLOAD_BUILD_UNDEFINED))

        with self.assertRaises(InvalidRequestException):
            ImageName().run(".+", Payload(PAYLOAD_BUILD_UNDEFINED))
示例#2
0
    def test_empty_payload(self):
        """Empty payload should return :exc:`InvalidRequestException`
        """
        with self.assertRaises(InvalidRequestException):
            ImageName().run(".*", Payload({}))

        with self.assertRaises(InvalidRequestException):
            ImageName().run(".+", Payload({}))
示例#3
0
    def test_get_name_images_create(self):
        """Get name from image create
        """
        name, tag = ImageName()._get_name(Payload(PAYLOAD_CREATE_PULL))
        self.assertEqual(name, "traefik")
        self.assertEqual(tag, "alpine")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_CREATE_IMPORT))
        self.assertEqual(name, "traefik")
        self.assertEqual(tag, "alpine")
示例#4
0
    def test_get_name_images_export(self):
        """Get name from image export
        """
        name, tag = ImageName()._get_name(Payload(PAYLOAD_EXPORT))
        self.assertEqual(name, "registry.example.net/traefik")
        self.assertEqual(tag, "alpine")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_EXPORT_SINGLE))
        self.assertEqual(name, "registry.example.net/traefik")
        self.assertEqual(tag, "alpine")
示例#5
0
    def test_tag_has_two_name(self):
        """The "tag" flag has two names
        """
        ImageName().run("^foo-.+", Payload(PAYLOAD_DUAL_NAME_1))
        ImageName().run(["^foo-.+"], Payload(PAYLOAD_DUAL_NAME_1))

        with self.assertRaises(UnauthorizedException):
            ImageName().run("^foo-.+", Payload(PAYLOAD_DUAL_NAME_2))

        with self.assertRaises(UnauthorizedException):
            ImageName().run(["^foo-.+"], Payload(PAYLOAD_DUAL_NAME_2))
示例#6
0
    def test_tag_has_two_name_user(self):
        """Username replacement
        """
        ImageName().run("^$USER-.+", Payload(PAYLOAD_DUAL_SOMEONE_1))

        with self.assertRaises(UnauthorizedException):
            ImageName().run("^$USER-.+", Payload(PAYLOAD_DUAL_SOMEONE_2))

        with self.assertRaises(UnauthorizedException):
            ImageName().run("^$USER-.+", Payload(PAYLOAD_DUAL_SOMEONE_3))

        with self.assertRaises(UnauthorizedException):
            ImageName().run("^$USER-.+", Payload(PAYLOAD_DUAL_NAME_1))
示例#7
0
    def test_get_name_images_for_private_registry(self):
        """Get name from image for private registry
        """
        name, tag = ImageName()._get_name(Payload(PAYLOAD_BUILD_PRIVATE))
        self.assertEqual(name, "registry.example.net/traefik")
        self.assertEqual(tag, "alpine")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_HISTORY_PRIVATE))
        self.assertEqual(name, "registry.example.net/traefik")
        self.assertEqual(tag, "alpine")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_PUSH_PRIVATE))
        self.assertEqual(name, "registry.example.net/traefik")
        self.assertEqual(tag, "alpine")
示例#8
0
 def test_get_name_images_export_multiple(self):
     """Get name from image export
     """
     [first,
      second] = ImageName()._get_name(Payload(PAYLOAD_EXPORT_MULTIPLE))
     self.assertEqual(first, ("registry.example.net/traefik", "alpine"))
     self.assertEqual(second, ("mariadb", "latest"))
示例#9
0
    def test_get_name_images_build(self):
        """Get name from image build
        """
        name, tag = ImageName()._get_name(Payload(PAYLOAD_BUILD_COMPLETE))
        self.assertEqual(name, "test")
        self.assertEqual(tag, "latest")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_BUILD_FOOBAR))
        self.assertEqual(name, "foobar")
        self.assertEqual(tag, "latest")

        name, tag = ImageName()._get_name(Payload(PAYLOAD_BUILD_FOOBAR_TAG))
        self.assertEqual(name, "foobar")
        self.assertEqual(tag, "something")

        with self.assertRaises(InvalidRequestException):
            ImageName()._get_name(Payload(PAYLOAD_BUILD_UNDEFINED))
示例#10
0
    def test_ignore_action(self):
        """Ignore action
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "GET",
            "RequestUri": "/v1.35/containers/json",
        }

        self.assertIsNone(ImageName().run(".*", Payload(payload_invalid)))
示例#11
0
    def test_invalid_query_parameter_compound_tag(self):
        """Missing tag defaults to latest
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "POST",
            "RequestUri": "/v1.35/commit?repo=alpine",
        }

        ImageName().run(".*", Payload(payload_invalid))
示例#12
0
    def test_path_parameter_tag_default_to_latest(self):
        """Default tag is latest
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "GET",
            "RequestUri": "/v1.35/images/traefik/history",
        }

        ImageName().run(".*", Payload(payload_invalid))
示例#13
0
    def test_path_parameter_invalid_uri(self):
        """Invalid Uri
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "GET",
            "RequestUri": "/v1.35/images//history",
        }

        with self.assertRaises(InvalidRequestException):
            ImageName().run(".*", Payload(payload_invalid))
示例#14
0
    def test_path_and_query_parameter_missing_tag_name(self):
        """Missing tag name
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "POST",
            "RequestUri": "/v1.35/images/traefik/push",
        }

        with self.assertRaises(InvalidRequestException):
            ImageName().run(".*", Payload(payload_invalid))
示例#15
0
    def test_invalid_query_parameter_compound_repo_name(self):
        """Missing repo name
        """
        payload_invalid = {
            "User": "******",
            "RequestMethod": "POST",
            "RequestUri": "/v1.35/commit?tag=latest",
        }

        with self.assertRaises(InvalidRequestException):
            ImageName().run(".*", Payload(payload_invalid))
示例#16
0
 def test_unconfigured_module(self):
     """Unconfigured module should return :exc:`ConfigurationException`
     """
     with self.assertRaises(ConfigurationException):
         ImageName().run(None, Payload(PAYLOAD_BUILD_UNDEFINED))
示例#17
0
 def test_get_name_images_inspect(self):
     """Get name from image inspect
     """
     name, tag = ImageName()._get_name(Payload(PAYLOAD_INSPECT))
     self.assertEqual(name, "traefik")
     self.assertEqual(tag, "alpine")
示例#18
0
 def test_get_name_images_history(self):
     """Get name from image history
     """
     name, tag = ImageName()._get_name(Payload(PAYLOAD_HISTORY))
     self.assertEqual(name, "traefik")
     self.assertEqual(tag, "alpine")
示例#19
0
 def test_get_name_images_push(self):
     """Get name from image push
     """
     name, tag = ImageName()._get_name(Payload(PAYLOAD_PUSH))
     self.assertEqual(name, "traefik")
     self.assertEqual(tag, "alpine")
示例#20
0
 def test_get_name_images_tag(self):
     """Get name from image tag
     """
     [first, second] = ImageName()._get_name(Payload(PAYLOAD_TAG))
     self.assertEqual(first, ("traefik", "alpine"))
     self.assertEqual(second, ("traefik2", "alpine2"))
示例#21
0
 def test_get_name_images_remove(self):
     """Get name from image remove
     """
     name, tag = ImageName()._get_name(Payload(PAYLOAD_REMOVE))
     self.assertEqual(name, "alpine")
     self.assertEqual(tag, "latest")
示例#22
0
 def test_get_name_images_commit(self):
     """Get name from image commit
     """
     name, tag = ImageName()._get_name(Payload(PAYLOAD_COMMIT))
     self.assertEqual(name, "alpine")
     self.assertEqual(tag, "latest")