Add Artifact Manager service.
[ccsdk/cds.git] / ms / artifact-manager / tests / configuration_test.py
diff --git a/ms/artifact-manager/tests/configuration_test.py b/ms/artifact-manager/tests/configuration_test.py
new file mode 100644 (file)
index 0000000..2199083
--- /dev/null
@@ -0,0 +1,47 @@
+"""Copyright 2019 Deutsche Telekom.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+from configparser import NoOptionError
+from pathlib import Path, PurePath
+from typing import NoReturn
+
+from pytest import raises
+
+from manager.configuration import ArtifactManagerConfiguration
+
+
+TEST_CONFIGURATION_FILE_PATH = str(
+    PurePath(Path(__file__).parent.absolute(), "configuration-test.ini")
+)
+
+
+def test_server_configuration_configuration_file_path() -> NoReturn:
+    """Test ArtifactManagerConfiguration class.
+
+    Test checks if configuration file is loaded properly and returns valid values.
+    If invalid section or option is provided it should raises KeyError or configparser.NoOptionError exceptions.
+    :return: NoReturn
+    """
+    configuration: ArtifactManagerConfiguration = ArtifactManagerConfiguration(
+        TEST_CONFIGURATION_FILE_PATH
+    )
+    assert configuration.get_section("testSection")
+    with raises(KeyError):
+        configuration.get_section("invalidSection")
+    assert configuration.get_property("testSection", "testValue") == "123"
+    with raises(NoOptionError):
+        configuration.get_property("testSection", "invalidValue")
+    assert configuration.artifact_manager_property("artifactManagerValue") == "123"
+    with raises(NoOptionError):
+        configuration.artifact_manager_property("invalidValue")