Completed
Pull Request — master (#2393)
by Zatreanu
01:52
created

GemRequirementTestCase   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 3 1
A test_InstalledRequirement() 0 2 1
A test_NotInstalledRequirement() 0 2 1
1
import unittest
2
import subprocess
3
from coalib.bears.requirements.PipRequirement import PipRequirement
4
from coalib.bears.requirements.NpmRequirement import NpmRequirement
5
from coalib.bears.requirements.GemRequirement import GemRequirement
6
7
8
def pip_check():
9
    """
10
    Checks whether npm is installed.
11
12
    :return: True if it is installed, false otherwise.
13
    """
14
    return subprocess.call(['pip'], stdout=subprocess.DEVNULL)
15
16
17
def npm_check():
18
    """
19
    Checks whether npm is installed.
20
21
    :return: True if it is installed, false otherwise.
22
    """
23
    return not subprocess.call(['npm'], stdout=subprocess.DEVNULL)
24
25
26
def gem_check():
27
    """
28
    Checks whether npm is installed.
29
30
    :return: True if it is installed, false otherwise.
31
    """
32
    return not subprocess.call(['gem'], stdout=subprocess.DEVNULL)
33
34
35
class PipRequirementTestCase(unittest.TestCase):
36
37
    def setUp(self):
38
        self.PipRequirement = PipRequirement('pip')
39
        self.PipRequirementBad = PipRequirement('some_bad_package')
40
41
    @unittest.skipIf(pip_check(), "Pip is not installed.")
42
    def test_InstalledRequirement(self):
43
        self.assertEqual(self.PipRequirement.is_installed(), True)
44
45
    @unittest.skipIf(pip_check(), "Pip is not installed.")
46
    def test_NotInstalledRequirement(self):
47
        self.assertEqual(self.PipRequirementBad.is_installed(), False)
48
49
50
class NpmRequirementTestCase(unittest.TestCase):
51
52
    def setUp(self):
53
        self.NpmRequirement = NpmRequirement('npm')
54
        self.NpmRequirementBad = PipRequirement('some_bad_package')
55
56
    @unittest.skipIf(npm_check(), "Npm is not installed.")
57
    def test_InstalledRequirement(self):
58
        self.assertEqual(self.NpmRequirement.is_installed(), True)
59
60
    @unittest.skipIf(npm_check(), "Npm is not installed.")
61
    def test_NotInstalledRequirement(self):
62
        self.assertEqual(self.NpmRequirementBad.is_installed(), False)
63
64
65
class GemRequirementTestCase(unittest.TestCase):
66
67
    def setUp(self):
68
        self.GemRequirement = GemRequirement('ruby')
69
        self.GemRequirementBad = PipRequirement('some_bad_package')
70
71
    unittest.skipIf(gem_check(), "Ruby is not installed.")
72
73
    def test_InstalledRequirement(self):
74
        self.assertEqual(self.GemRequirement.is_installed(), True)
75
76
    unittest.skipIf(gem_check(), "Ruby is not installed.")
77
78
    def test_NotInstalledRequirement(self):
79
        self.assertEqual(self.GemRequirementBad.is_installed(), False)
80