diff --git a/lib/xos-config/tests/confs/extend_conf.yaml b/lib/xos-config/tests/confs/extend_conf.yaml
new file mode 100644
index 0000000..dd888e3
--- /dev/null
+++ b/lib/xos-config/tests/confs/extend_conf.yaml
@@ -0,0 +1,17 @@
+
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+
+xos_dir: /opt/xos
\ No newline at end of file
diff --git a/lib/xos-config/tests/confs/override_conf.yaml b/lib/xos-config/tests/confs/override_conf.yaml
new file mode 100644
index 0000000..683b8da
--- /dev/null
+++ b/lib/xos-config/tests/confs/override_conf.yaml
@@ -0,0 +1,21 @@
+
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+
+database:
+  # as per xos-config-schema.yaml these are all required
+  name: xos
+  username: test
+  password: overridden_password
\ No newline at end of file
diff --git a/lib/xos-config/tests/confs/sample_conf.yaml b/lib/xos-config/tests/confs/sample_conf.yaml
index 3e08f03..e177fbb 100644
--- a/lib/xos-config/tests/confs/sample_conf.yaml
+++ b/lib/xos-config/tests/confs/sample_conf.yaml
@@ -23,5 +23,4 @@
   level: info
   channels:
     - file
-    - console
-xos_dir: /opt/xos
\ No newline at end of file
+    - console
\ No newline at end of file
diff --git a/lib/xos-config/tests/test_config.py b/lib/xos-config/tests/test_config.py
index 1684472..ee80b52 100644
--- a/lib/xos-config/tests/test_config.py
+++ b/lib/xos-config/tests/test_config.py
@@ -24,6 +24,8 @@
 yaml_not_valid = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/confs/yaml_not_valid.yaml")
 invalid_format = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/confs/invalid_format.yaml")
 sample_conf = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/confs/sample_conf.yaml")
+override_conf = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/confs/override_conf.yaml")
+extend_conf = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/confs/extend_conf.yaml")
 
 small_schema = os.path.abspath(os.path.dirname(os.path.realpath(__file__)) + "/schemas/small_schema.yaml")
 
@@ -158,7 +160,7 @@
 
     def test_get_missing_param(self):
         """
-        [XOS-Config] Should raise reading a missing param
+        [XOS-Config] Should return None reading a missing param
         """
         Config.init(sample_conf)
         res = Config.get("foo")
@@ -178,13 +180,33 @@
             "password": "safe"
         })
 
-    def _test_get_child_level(self):
+    def test_get_child_level(self):
         """
         [XOS-Config] Should return a child level param
         """
         Config.init(sample_conf)
-        res = Config.get("nested.parameter.for")
-        self.assertEqual(res, "testing")
+        res = Config.get("database.name")
+        self.assertEqual(res, "xos")
+
+    def test_config_override(self):
+        """
+        [XOS-Config] If an override is provided for the config, it should return the overridden value
+        """
+        Config.init(sample_conf, 'xos-config-schema.yaml', override_conf)
+        res = Config.get("logging.level")
+        self.assertEqual(res, "info")
+        res = Config.get("database.password")
+        self.assertEqual(res, "overridden_password")
+
+    def test_config_extend(self):
+        """
+        [XOS-Config] If an override is provided for the config, it should return the overridden value (also if not defined in the base one)
+        """
+        Config.init(sample_conf, 'xos-config-schema.yaml', extend_conf)
+        res = Config.get("xos_dir")
+        self.assertEqual(res, "/opt/xos")
+        res = Config.get("database.password")
+        self.assertEqual(res, "safe")
 
 if __name__ == '__main__':
     unittest.main()
