TestFunctions.test_find_dropbox()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
b 0
f 0
dl 0
loc 9
rs 9.6666
1
#!/usr/bin/env python
2
3
"""Unit tests for the dtb.share module."""
4
5
import unittest
6
from unittest.mock import patch, Mock
7
8
import os
9
import tempfile
10
import shutil
11
12
from dtb import share
13
14
from dtb.tests import FILES
15
16
17
class TestFunctions(unittest.TestCase):  # pylint: disable=R0904
18
    """Unit tests for the sharing functions class."""  # pylint: disable=C0103,W0212
19
20
    def test_find_dropbox(self):
21
        """Verify a sharing folder can be found for Dropbox."""
22
        temp = tempfile.mkdtemp()
23
        os.makedirs(os.path.join(temp, 'Dropbox', 'DropTheBeat'))
24
        try:
25
            path = share.find(temp)
26
            self.assertTrue(os.path.isdir(path))
27
        finally:
28
            shutil.rmtree(temp)
29
30
    def test_find_dropbox_personal(self):
31
        """Verify a sharing folder can be found for Dropbox (Personal)."""
32
        temp = tempfile.mkdtemp()
33
        os.makedirs(os.path.join(temp, 'Dropbox (Personal)', 'DropTheBeat'))
34
        try:
35
            path = share.find(temp)
36
            self.assertTrue(os.path.isdir(path))
37
        finally:
38
            shutil.rmtree(temp)
39
40
    @patch('dtb.share.SHARE_DEPTH', 2)
41
    def test_find_depth(self):
42
        """Verify a sharing folder is not found below the depth."""
43
        temp = tempfile.mkdtemp()
44
        os.makedirs(os.path.join(temp, 'Dropbox', 'a', 'b', 'DropTheBeat'))
45
        try:
46
            self.assertRaises(OSError, share.find, temp)
47
        finally:
48
            shutil.rmtree(temp)
49
50
    @patch('os.path.isdir', Mock(return_value=False))
51
    def test_find_no_home(self):
52
        """Verify an error occurs when no home directory is found."""
53
        self.assertRaises(EnvironmentError, share.find)
54
55
    def test_find_no_share(self):
56
        """Verify an error occurs when no home directory is found."""
57
        self.assertRaises(EnvironmentError, share.find, FILES)
58
59
60
if __name__ == '__main__':
61
    unittest.main()
62