summaryrefslogtreecommitdiffstats
path: root/vstf/vstf/agent/unittest/env/test_sourcemanager.py
blob: fda567d83e996c29a3736ce2a90adbdecaa89e93 (plain)
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
"""
Created on 2015-10-9

@author: y00228926
"""
import unittest
import shutil
import time
import os

from vstf.agent.env.basic.source_manager import SourceCodeManager
from vstf.agent.unittest.env import model


class TestSourceManager(model.Test):
    def setUp(self):
        super(TestSourceManager, self).setUp()
        self.sm = SourceCodeManager()
        self.dest_path = '/tmp/test_source_manager'
        os.mkdir(self.dest_path)

    def tearDown(self):
        shutil.rmtree(self.dest_path, ignore_errors = True)

    def _time(self,func):
        def _deco(*args):
            start_time = time.time()
            func(*args)
            end_time = time.time()
            return end_time - start_time
        return _deco

    def test_download_source_code(self):
        for key, item in self.source_repo.items():
            print self.source_repo
            url = item['url']
            target = os.path.join(self.dest_path, key)
            install = item['install']
            if install:
                self.sm._git_pull(url, target)
                self.assertTrue(os.path.isdir(target))
                my_download = self._time(self.sm._git_pull)
                t = my_download(url, target)
                self.assertTrue(t < 1.0)
            else:
                self.assertFalse(os.path.isdir(target))


if __name__ == "__main__":
    import logging
    logging.basicConfig(level = logging.INFO)
    LOG = logging.getLogger(__name__)
    unittest.main()