-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbootstrap_test.py
More file actions
66 lines (45 loc) · 2.14 KB
/
Copy pathbootstrap_test.py
File metadata and controls
66 lines (45 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""Unittests for bootstrap"""
import bootstrap
def test_link_if_file_not_exists(mocker):
os_path_islink_mock = mocker.patch('bootstrap.os.path.islink')
os_access_mock = mocker.patch('bootstrap.os.access')
os_symlink_mock = mocker.patch('bootstrap.os.symlink')
os_access_mock.return_value = False
os_path_islink_mock.return_value = False
bootstrap.link('foo', 'bar')
assert os_symlink_mock.called
os_symlink_mock.assert_called_once_with('foo', 'bar')
def test_link_if_file_exists_but_points_to_wrong_location(mocker):
os_path_islink_mock = mocker.patch('bootstrap.os.path.islink')
os_access_mock = mocker.patch('bootstrap.os.access')
os_readlink_mock = mocker.patch('bootstrap.os.readlink')
os_symlink_mock = mocker.patch('bootstrap.os.symlink')
os_access_mock.return_value = True
os_readlink_mock.return_value = 'wrong_path'
os_path_islink_mock.return_value = True
bootstrap.link('foo', 'bar')
assert os_symlink_mock.called
os_symlink_mock.assert_called_once_with('foo', 'bar')
def test_link_if_file_exists_with_correct_location(mocker):
os_path_islink_mock = mocker.patch('bootstrap.os.path.islink')
os_access_mock = mocker.patch('bootstrap.os.access')
os_readlink_mock = mocker.patch('bootstrap.os.readlink')
os_symlink_mock = mocker.patch('bootstrap.os.symlink')
os_access_mock.return_value = True
os_readlink_mock.return_value = 'foo'
os_path_islink_mock.return_value = True
bootstrap.link('foo', 'bar')
assert not os_symlink_mock.called
def test_link_if_file_exists_but_it_is_not_a_symlink(mocker):
os_remove_mock = mocker.patch('os.remove')
os_path_islink_mock = mocker.patch('bootstrap.os.path.islink')
os_access_mock = mocker.patch('bootstrap.os.access')
os_readlink_mock = mocker.patch('bootstrap.os.readlink')
os_symlink_mock = mocker.patch('bootstrap.os.symlink')
os_access_mock.return_value = True
os_readlink_mock.side_effect = OSError()
os_path_islink_mock.return_value = False
bootstrap.link('foo', 'bar')
assert os_path_islink_mock.called
assert os_remove_mock.called
assert os_symlink_mock.called