57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import mock
 | 
						|
import os
 | 
						|
import tempfile
 | 
						|
import unittest
 | 
						|
import uuid
 | 
						|
 | 
						|
 | 
						|
with mock.patch('charmhelpers.core.hookenv.config'):
 | 
						|
    import swift_context
 | 
						|
 | 
						|
 | 
						|
class SwiftContextTestCase(unittest.TestCase):
 | 
						|
 | 
						|
    @mock.patch('swift_context.config')
 | 
						|
    def test_get_swift_hash_file(self, mock_config):
 | 
						|
        expected = '##FILEHASH##'
 | 
						|
        with tempfile.NamedTemporaryFile() as tmpfile:
 | 
						|
            swift_context.SWIFT_HASH_FILE = tmpfile.name
 | 
						|
            tmpfile.write(expected)
 | 
						|
            tmpfile.seek(0)
 | 
						|
            os.fsync(tmpfile)
 | 
						|
            hash = swift_context.get_swift_hash()
 | 
						|
 | 
						|
        self.assertFalse(mock_config.called)
 | 
						|
        self.assertEqual(expected, hash)
 | 
						|
 | 
						|
    @mock.patch('swift_context.config')
 | 
						|
    def test_get_swift_hash_config(self, mock_config):
 | 
						|
        expected = '##CFGHASH##'
 | 
						|
        mock_config.return_value = expected
 | 
						|
        tmpfile = tempfile.mktemp()
 | 
						|
        swift_context.SWIFT_HASH_FILE = tmpfile
 | 
						|
        hash = swift_context.get_swift_hash()
 | 
						|
 | 
						|
        with open(tmpfile, 'r') as fd:
 | 
						|
            self.assertEqual(expected, fd.read())
 | 
						|
 | 
						|
        self.assertTrue(mock_config.called)
 | 
						|
        self.assertEqual(expected, hash)
 | 
						|
 | 
						|
    @mock.patch('swift_context.service_name')
 | 
						|
    @mock.patch('swift_context.config')
 | 
						|
    def test_get_swift_hash_env(self, mock_config, mock_service_name):
 | 
						|
        mock_config.return_value = None
 | 
						|
        mock_service_name.return_value = "testsvc"
 | 
						|
        tmpfile = tempfile.mktemp()
 | 
						|
        swift_context.SWIFT_HASH_FILE = tmpfile
 | 
						|
        with mock.patch('swift_context.os.environ.get') as mock_env_get:
 | 
						|
            mock_env_get.return_value = str(uuid.uuid4())
 | 
						|
            hash = swift_context.get_swift_hash()
 | 
						|
            mock_env_get.assert_called_with('JUJU_ENV_UUID')
 | 
						|
 | 
						|
        with open(tmpfile, 'r') as fd:
 | 
						|
            self.assertEqual(hash, fd.read())
 | 
						|
 | 
						|
        self.assertTrue(mock_config.called)
 |