|  | @@ -3,8 +3,10 @@ import io
 | 
	
		
			
			| 3 | 3 |  
 | 
	
		
			
			| 4 | 4 |  import pytest
 | 
	
		
			
			| 5 | 5 |  from sqlalchemy.exc import InvalidRequestError
 | 
	
		
			
			| 6 |  | -
 | 
	
		
			
			|  | 6 | +from wsgidav.wsgidav_app import DEFAULT_CONFIG
 | 
	
		
			
			|  | 7 | +from tracim import WebdavAppFactory
 | 
	
		
			
			| 7 | 8 |  from tracim.lib.core.user import UserApi
 | 
	
		
			
			|  | 9 | +from tracim.lib.webdav import TracimDomainController
 | 
	
		
			
			| 8 | 10 |  from tracim.tests import eq_
 | 
	
		
			
			| 9 | 11 |  from tracim.lib.core.notifications import DummyNotifier
 | 
	
		
			
			| 10 | 12 |  from tracim.lib.webdav.dav_provider import Provider
 | 
	
	
		
			
			|  | @@ -15,6 +17,53 @@ from tracim.tests import StandardTest
 | 
	
		
			
			| 15 | 17 |  from tracim.fixtures.content import Content as ContentFixtures
 | 
	
		
			
			| 16 | 18 |  from tracim.fixtures.users_and_groups import Base as BaseFixture
 | 
	
		
			
			| 17 | 19 |  from wsgidav import util
 | 
	
		
			
			|  | 20 | +from unittest.mock import MagicMock
 | 
	
		
			
			|  | 21 | +
 | 
	
		
			
			|  | 22 | +
 | 
	
		
			
			|  | 23 | +class TestWebdavFactory(StandardTest):
 | 
	
		
			
			|  | 24 | +
 | 
	
		
			
			|  | 25 | +    def test_unit__initConfig__ok__nominal_case(self):
 | 
	
		
			
			|  | 26 | +        """
 | 
	
		
			
			|  | 27 | +        Check if config is correctly modify for wsgidav using mocked
 | 
	
		
			
			|  | 28 | +        wsgidav and tracim conf (as dict)
 | 
	
		
			
			|  | 29 | +        :return:
 | 
	
		
			
			|  | 30 | +        """
 | 
	
		
			
			|  | 31 | +        tracim_settings = {
 | 
	
		
			
			|  | 32 | +            'sqlalchemy.url': 'sqlite:///:memory:',
 | 
	
		
			
			|  | 33 | +            'user.auth_token.validity': '604800',
 | 
	
		
			
			|  | 34 | +            'depot_storage_dir': '/tmp/test/depot',
 | 
	
		
			
			|  | 35 | +            'depot_storage_name': 'test',
 | 
	
		
			
			|  | 36 | +            'preview_cache_dir': '/tmp/test/preview_cache',
 | 
	
		
			
			|  | 37 | +            'wsgidav.config_path': 'development.ini'
 | 
	
		
			
			|  | 38 | +
 | 
	
		
			
			|  | 39 | +        }
 | 
	
		
			
			|  | 40 | +        wsgidav_setting = DEFAULT_CONFIG.copy()
 | 
	
		
			
			|  | 41 | +        wsgidav_setting.update(
 | 
	
		
			
			|  | 42 | +            {
 | 
	
		
			
			|  | 43 | +               'root_path':  '',
 | 
	
		
			
			|  | 44 | +               'acceptbasic': True,
 | 
	
		
			
			|  | 45 | +               'acceptdigest': False,
 | 
	
		
			
			|  | 46 | +               'defaultdigest': False,
 | 
	
		
			
			|  | 47 | +            }
 | 
	
		
			
			|  | 48 | +        )
 | 
	
		
			
			|  | 49 | +        mock = MagicMock()
 | 
	
		
			
			|  | 50 | +        mock._initConfig = WebdavAppFactory._initConfig
 | 
	
		
			
			|  | 51 | +        mock._readConfigFile.return_value = wsgidav_setting
 | 
	
		
			
			|  | 52 | +        mock._get_tracim_settings.return_value = tracim_settings
 | 
	
		
			
			|  | 53 | +        config = mock._initConfig(mock)
 | 
	
		
			
			|  | 54 | +        assert config
 | 
	
		
			
			|  | 55 | +        assert config['acceptbasic'] is True
 | 
	
		
			
			|  | 56 | +        assert config['acceptdigest'] is False
 | 
	
		
			
			|  | 57 | +        assert config['defaultdigest'] is False
 | 
	
		
			
			|  | 58 | +        # TODO - G.M - 25-05-2018 - Better check for middleware stack config
 | 
	
		
			
			|  | 59 | +        assert 'middleware_stack' in config
 | 
	
		
			
			|  | 60 | +        assert len(config['middleware_stack']) == 7
 | 
	
		
			
			|  | 61 | +        assert 'root_path' in config
 | 
	
		
			
			|  | 62 | +        assert 'provider_mapping' in config
 | 
	
		
			
			|  | 63 | +        assert config['root_path'] in config['provider_mapping']
 | 
	
		
			
			|  | 64 | +        assert isinstance(config['provider_mapping'][config['root_path']], Provider)  # nopep8
 | 
	
		
			
			|  | 65 | +        assert 'domaincontroller' in config
 | 
	
		
			
			|  | 66 | +        assert isinstance(config['domaincontroller'], TracimDomainController)
 | 
	
		
			
			| 18 | 67 |  
 | 
	
		
			
			| 19 | 68 |  
 | 
	
		
			
			| 20 | 69 |  class TestWebDav(StandardTest):
 |