DownloaderTestCase   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 29
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A test_list_old_files() 0 11 1
A test_can_download() 0 8 1
A test_ensure_location() 0 7 1
1
import unittest
2
3
try:
4
    from unittest import mock
5
except ImportError:
6
    import mock
7
8
from binstar_client.utils.notebook import Downloader
9
from binstar_client.utils.test.utils import data_dir
10
11
12
files = {'files': [
13
    {'basename': 'notebook', 'version': '1'},
14
    {'basename': 'notebook', 'version': '2'},
15
    {'basename': 'data', 'version': '2'}
16
]}
17
18
19
class DownloaderTestCase(unittest.TestCase):
20
    def test_ensure_location(self):
21
        aserver_api = mock.MagicMock()
22
        aserver_api.package = mock.MagicMock(return_value=files)
23
24
        downloader = Downloader(aserver_api, 'username', 'notebook')
25
        self.assertEqual(downloader.list_files()[0]['version'], '2')
26
        self.assertEqual(downloader.list_files()[1]['version'], '2')
27
28
    def test_can_download(self):
29
        package_1 = {'basename': 'notebook.ipynb'}
30
        package_2 = {'basename': 'NOEXIST'}
31
        downloader = Downloader('binstar', 'username', 'notebook')
32
        downloader.output = data_dir('')
33
        self.assertTrue(not downloader.can_download(package_1))
34
        self.assertTrue(downloader.can_download(package_1, True))
35
        self.assertTrue(downloader.can_download(package_2))
36
37
    def test_list_old_files(self):
38
        old_files = {'files': [{
39
            'basename': 'old-notebook',
40
            'version': '1.0.0',
41
            'upload_time': '2015-04-02 22:32:31.253000+00:00'
42
        }]}
43
        aserver_api = mock.MagicMock()
44
        aserver_api.package = mock.MagicMock(return_value=old_files)
45
46
        downloader = Downloader(aserver_api, 'username', 'notebook')
47
        self.assertEqual(downloader.list_files()[0]['version'], '1.0.0')
48
49
if __name__ == '__main__':
50
    unittest.main()
51