From 5f843100cca98167ab350ca49db964c1004ca635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dejan=20Proki=C4=87?= Date: Sat, 25 Jul 2015 18:17:27 +0200 Subject: [PATCH] tests: Add tests for getter methods for cache, config and data directories --- tests/test_ext.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/test_ext.py b/tests/test_ext.py index b73e2bae..1a6bd538 100644 --- a/tests/test_ext.py +++ b/tests/test_ext.py @@ -1,5 +1,7 @@ from __future__ import absolute_import, unicode_literals +import os + import mock import pkg_resources @@ -53,6 +55,21 @@ class TestExtension(object): with pytest.raises(NotImplementedError): extension.setup(None) + def test_get_cache_dir_raises_assertion_error(self, extension): + config = {'core': {'cache_dir': '/tmp'}} + with pytest.raises(AssertionError): # ext_name not set + extension.get_cache_dir(config) + + def test_get_config_dir_raises_assertion_error(self, extension): + config = {'core': {'config_dir': '/tmp'}} + with pytest.raises(AssertionError): # ext_name not set + extension.get_config_dir(config) + + def test_get_data_dir_raises_assertion_error(self, extension): + config = {'core': {'data_dir': '/tmp'}} + with pytest.raises(AssertionError): # ext_name not set + extension.get_data_dir(config) + class TestLoadExtensions(object): @@ -221,3 +238,36 @@ class TestValidateExtensionData(object): def test_no_default_config(self, ext_data): ext_data = ext_data._replace(config_defaults=None) assert not ext.validate_extension_data(ext_data) + + def test_get_cache_dir(self, ext_data): + core_cache_dir = '/tmp' + config = {'core': {'cache_dir': core_cache_dir}} + extension = ext_data.extension + + with mock.patch.object(ext.path, 'get_or_create_dir'): + cache_dir = extension.get_cache_dir(config) + + expected = os.path.join(core_cache_dir, extension.ext_name) + assert cache_dir == expected + + def test_get_config_dir(self, ext_data): + core_config_dir = '/tmp' + config = {'core': {'config_dir': core_config_dir}} + extension = ext_data.extension + + with mock.patch.object(ext.path, 'get_or_create_dir'): + config_dir = extension.get_config_dir(config) + + expected = os.path.join(core_config_dir, extension.ext_name) + assert config_dir == expected + + def test_get_data_dir(self, ext_data): + core_data_dir = '/tmp' + config = {'core': {'data_dir': core_data_dir}} + extension = ext_data.extension + + with mock.patch.object(ext.path, 'get_or_create_dir'): + data_dir = extension.get_data_dir(config) + + expected = os.path.join(core_data_dir, extension.ext_name) + assert data_dir == expected