def test_stat(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )

        a.rest_get = MM(return_value=(self.file_stat, 200))

        s = a.stat(p)
        self.assertEqual(
            s.ctime, dateutil.parser.parse("2014-02-24T21:20:59.999+04:00")
        )
        self.assertEqual(
            s.mtime, dateutil.parser.parse("2014-02-24T21:20:36.000+04:00")
        )
        self.assertEqual(s.created_by, "someuser")
        self.assertEqual(s.modified_by, "anotheruser")
        self.assertEqual(s.mime_type, "application/octet-stream")
        self.assertEqual(s.size, 26776462)
        self.assertEqual(s.sha1, "fc6c9e8ba6eaca4fa97868ac900570282133c095")
        self.assertEqual(
            s.sha256,
            "fc6c9e8ba6eaca4fa97868ac900570282133c095fc6c9e8ba6eaca4fa97868ac900570282133c095",
        )
        self.assertEqual(s.md5, "2af7d54a09e9c36d704cb3a2de28aff3")
        self.assertEqual(s.is_dir, False)

        # Directory
        p = P("http://artifactory.local/artifactory/api/storage/libs-release-local")

        a.rest_get = MM(return_value=(self.dir_stat, 200))

        s = a.stat(p)
        self.assertEqual(
            s.ctime, dateutil.parser.parse("2014-02-18T15:35:29.361+04:00")
        )
        self.assertEqual(
            s.mtime, dateutil.parser.parse("2014-02-18T15:35:29.361+04:00")
        )
        self.assertEqual(s.created_by, None)
        self.assertEqual(s.modified_by, None)
        self.assertEqual(s.mime_type, None)
        self.assertEqual(s.size, 0)
        self.assertEqual(s.sha1, None)
        self.assertEqual(s.sha256, None)
        self.assertEqual(s.md5, None)
        self.assertEqual(s.is_dir, True)
    def test_listdir(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath

        # Directory
        p = P("http://artifactory.local/artifactory/api/storage/libs-release-local")

        a.rest_get = MM(return_value=(self.dir_stat, 200))

        children = a.listdir(p)

        self.assertEqual(children, [".index", "com"])

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )

        a.rest_get = MM(return_value=(self.file_stat, 200))

        self.assertRaises(OSError, a.listdir, p)
Exemple #3
0
    def test_set_properties_without_remove(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath
        properties = {
            'test': ['test_property'],
            "time": ["2018-01-16 12:17:44.135143"],
            "addthis": ['addthis'],
            "removethis": ["removethis_property"],
        }

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )

        p._accessor.rest_get = MM(return_value=(self.property_data, 200))
        p._accessor.rest_del = MM(return_value=('', 204))
        p._accessor.rest_put = MM(return_value=('', 204))
        p.properties = properties

        # Must delete only removed property
        p._accessor.rest_del.assert_not_called()
Exemple #4
0
    def test_set_properties(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath
        properties = {
            'test': ['test_property'],
            "time": ["2018-01-16 12:17:44.135143"],
            "addthis": ['addthis'],
        }

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )

        p._accessor.rest_get = MM(return_value=(self.property_data, 200))
        p._accessor.rest_del = MM(return_value=('', 204))
        p._accessor.rest_put = MM(return_value=('', 204))
        p.properties = properties

        # Must delete only removed property
        p._accessor.rest_del.assert_called_once()
        calls = p._accessor.rest_del.mock_calls

        kwargs = calls[0][2]  # '', args, kwargs, _
        properties_del = kwargs['params']['properties']
        self.assertEqual(properties_del, 'removethis')

        # Must put all property
        p._accessor.rest_put.assert_called_once()
        calls = p._accessor.rest_put.mock_calls

        kwargs = calls[0][2]  # '', args, kwargs, _
        properties_put = kwargs['params']['properties']
        self.assertEqual(
            properties_put,
            "addthis=addthis;test=test_property;time=2018-01-16 12:17:44.135143"
        )
    def test_stat_no_sha256(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )
        file_stat = """
            {
                "repo" : "ext-release-local",
                "path" : "/org/company/tool/1.0/tool-1.0.tar.gz",
                "created" : "2014-02-24T21:20:59.999+04:00",
                "createdBy" : "someuser",
                "lastModified" : "2014-02-24T21:20:36.000+04:00",
                "modifiedBy" : "anotheruser",
                "lastUpdated" : "2014-02-24T21:20:36.000+04:00",
                "downloadUri" : "http://artifactory.local/artifactory/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz",
                "mimeType" : "application/octet-stream",
                "size" : "26776462",
                "checksums" : {
                    "sha1" : "fc6c9e8ba6eaca4fa97868ac900570282133c095",
                    "md5" : "2af7d54a09e9c36d704cb3a2de28aff3"
                },
                "originalChecksums" : {
                    "sha1" : "fc6c9e8ba6eaca4fa97868ac900570282133c095",
                    "md5" : "2af7d54a09e9c36d704cb3a2de28aff3"
                },
                "uri" : "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
            }
        """

        a.rest_get = MM(return_value=(file_stat, 200))

        s = a.stat(p)
        self.assertEqual(
            s.ctime, dateutil.parser.parse("2014-02-24T21:20:59.999+04:00")
        )
        self.assertEqual(
            s.mtime, dateutil.parser.parse("2014-02-24T21:20:36.000+04:00")
        )
        self.assertEqual(s.created_by, "someuser")
        self.assertEqual(s.modified_by, "anotheruser")
        self.assertEqual(s.mime_type, "application/octet-stream")
        self.assertEqual(s.size, 26776462)
        self.assertEqual(s.sha1, "fc6c9e8ba6eaca4fa97868ac900570282133c095")
        self.assertEqual(s.sha256, None)
Exemple #6
0
    def test_get_properties(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath
        properties = {
            'test': ['test_property'],
            'removethis': ['removethis_property'],
            "time": ["2018-01-16 12:17:44.135143"],
        }

        # Regular File
        p = P(
            "http://artifactory.local/artifactory/api/storage/ext-release-local/org/company/tool/1.0/tool-1.0.tar.gz"
        )

        p._accessor.rest_get = MM(return_value=(self.property_data, 200))

        self.assertEqual(p.properties, properties)
    def test_deploy(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath

        p = P("http://b/artifactory/c/d")

        params = {"foo": "bar", "baz": "quux"}

        a.rest_put_stream = MM(return_value=("OK", 200))

        f = io.StringIO()

        a.deploy(p, f, parameters=params)

        url = "http://b/artifactory/c/d;baz=quux;foo=bar"

        a.rest_put_stream.assert_called_with(
            url, f, headers={}, session=p.session, verify=True, cert=None, timeout=None
        )
Exemple #8
0
    def test_deploy(self):
        a = self.cls()
        P = artifactory.ArtifactoryPath

        p = P("http://b/artifactory/c/d")

        params = {'foo': 'bar', 'baz': 'quux'}

        a.rest_put_stream = MM(return_value=('OK', 200))

        f = io.StringIO()

        a.deploy(p, f, parameters=params)

        url = "http://b/artifactory/c/d;baz=quux;foo=bar"

        a.rest_put_stream.assert_called_with(url,
                                             f,
                                             headers={},
                                             auth=None,
                                             verify=True,
                                             cert=None)