예제 #1
0
class TestUtil(unittest.TestCase):
    def setUp(self):
        self.mock_makedirs = patch('os.makedirs').start()
        self.mock_isdir = patch('os.path.isdir').start()

        self.test_model = Util()

    def test_mkdirp_should_create_a_directory_if_it_doesnt_exist(self):
        self.test_model.mkdirp(TEST_PATH)
        self.mock_makedirs.assert_called_once_with(TEST_PATH)

    def test_mkdirp_should_continue_if_the_directory_already_exists(self):
        self.mock_makedirs.side_effect = OSError(errno.EEXIST, 'test')
        self.mock_isdir.return_value = True
        self.test_model.mkdirp(TEST_PATH)

    def test_mkdirp_should_blow_up_if_the_path_is_actually_a_file(self):
        self.mock_makedirs.side_effect = OSError(errno.EEXIST, 'test')
        self.mock_isdir.return_value = False
        with self.assertRaises(OSError):
            self.test_model.mkdirp(TEST_PATH)