mirror of
https://github.com/valitydev/salt.git
synced 2024-11-09 01:36:48 +00:00
121 lines
6.0 KiB
Python
121 lines
6.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
# Import pytohn libs
|
|
from __future__ import absolute_import
|
|
|
|
# Import Salt testing libs
|
|
from tests.support.mixins import LoaderModuleMockMixin
|
|
from tests.support.unit import skipIf, TestCase
|
|
from tests.support.mock import NO_MOCK, NO_MOCK_REASON, MagicMock, patch
|
|
|
|
# Import Salt libs
|
|
import salt.modules.nexus as nexus
|
|
|
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
class nexusTestCase(TestCase, LoaderModuleMockMixin):
|
|
|
|
def setup_loader_modules(self):
|
|
return {nexus: {}}
|
|
|
|
def test_artifact_get_metadata(self):
|
|
with patch('salt.modules.nexus._get_artifact_metadata_xml', MagicMock(return_value='''<?xml version="1.0" encoding="UTF-8"?>
|
|
<metadata>
|
|
<groupId>com.company.sampleapp.web-module</groupId>
|
|
<artifactId>web</artifactId>
|
|
<versioning>
|
|
<release>0.1.0</release>
|
|
<versions>
|
|
<version>0.0.1</version>
|
|
<version>0.0.2</version>
|
|
<version>0.0.3</version>
|
|
<version>0.1.0</version>
|
|
</versions>
|
|
<lastUpdated>20171010143552</lastUpdated>
|
|
</versioning>
|
|
</metadata>''')):
|
|
metadata = nexus._get_artifact_metadata(nexus_url='http://nexus.example.com/repository',
|
|
repository='libs-releases',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web',
|
|
headers={})
|
|
self.assertEqual(metadata['latest_version'], '0.1.0')
|
|
|
|
def test_snapshot_version_get_metadata(self):
|
|
with patch('salt.modules.nexus._get_snapshot_version_metadata_xml', MagicMock(return_value='''<?xml version="1.0" encoding="UTF-8"?>
|
|
<metadata modelVersion="1.1.0">
|
|
<groupId>com.company.sampleapp.web-module</groupId>
|
|
<artifactId>web</artifactId>
|
|
<version>0.0.2-SNAPSHOT</version>
|
|
<versioning>
|
|
<snapshot>
|
|
<timestamp>20170920.212353</timestamp>
|
|
<buildNumber>3</buildNumber>
|
|
</snapshot>
|
|
<lastUpdated>20171112171500</lastUpdated>
|
|
<snapshotVersions>
|
|
<snapshotVersion>
|
|
<classifier>sans-externalized</classifier>
|
|
<extension>jar</extension>
|
|
<value>0.0.2-20170920.212353-3</value>
|
|
<updated>20170920212353</updated>
|
|
</snapshotVersion>
|
|
<snapshotVersion>
|
|
<classifier>dist</classifier>
|
|
<extension>zip</extension>
|
|
<value>0.0.2-20170920.212353-3</value>
|
|
<updated>20170920212353</updated>
|
|
</snapshotVersion>
|
|
</snapshotVersions>
|
|
</versioning>
|
|
</metadata>''')):
|
|
metadata = nexus._get_snapshot_version_metadata(nexus_url='http://nexus.example.com/repository',
|
|
repository='libs-releases',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web',
|
|
version='0.0.2-SNAPSHOT',
|
|
headers={})
|
|
self.assertEqual(metadata['snapshot_versions']['dist'], '0.0.2-20170920.212353-3')
|
|
|
|
def test_artifact_metadata_url(self):
|
|
metadata_url = nexus._get_artifact_metadata_url(nexus_url='http://nexus.example.com/repository',
|
|
repository='libs-releases',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web')
|
|
|
|
self.assertEqual(metadata_url, "http://nexus.example.com/repository/libs-releases/com/company/sampleapp/web-module/web/maven-metadata.xml")
|
|
|
|
def test_snapshot_version_metadata_url(self):
|
|
metadata_url = nexus._get_snapshot_version_metadata_url(nexus_url='http://nexus.example.com/repository',
|
|
repository='libs-snapshots',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web',
|
|
version='0.0.2-SNAPSHOT')
|
|
|
|
self.assertEqual(metadata_url, "http://nexus.example.com/repository/libs-snapshots/com/company/sampleapp/web-module/web/0.0.2-SNAPSHOT/maven-metadata.xml")
|
|
|
|
def test_construct_url_for_released_version(self):
|
|
artifact_url, file_name = nexus._get_release_url(repository='libs-releases',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web',
|
|
packaging='zip',
|
|
nexus_url='http://nexus.example.com/repository',
|
|
version='0.1.0')
|
|
|
|
self.assertEqual(artifact_url, "http://nexus.example.com/repository/libs-releases/com/company/sampleapp/web-module/web/0.1.0/web-0.1.0.zip")
|
|
self.assertEqual(file_name, "web-0.1.0.zip")
|
|
|
|
def test_construct_url_for_snapshot_version(self):
|
|
with patch('salt.modules.nexus._get_snapshot_version_metadata', MagicMock(return_value={'snapshot_versions': {'zip': '0.0.2-20170920.212353-3'}})):
|
|
|
|
artifact_url, file_name = nexus._get_snapshot_url(nexus_url='http://nexus.example.com/repository',
|
|
repository='libs-snapshots',
|
|
group_id='com.company.sampleapp.web-module',
|
|
artifact_id='web',
|
|
version='0.2.0-SNAPSHOT',
|
|
packaging='zip',
|
|
headers={})
|
|
|
|
self.assertEqual(artifact_url, "http://nexus.example.com/repository/libs-snapshots/com/company/sampleapp/web-module/web/0.2.0-SNAPSHOT/web-0.0.2-20170920.212353-3.zip")
|
|
self.assertEqual(file_name, "web-0.0.2-20170920.212353-3.zip")
|