Completed
Pull Request — master (#127)
by Jasper
01:09
created

tests.LocationTests   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 52
Duplicated Lines 0 %
Metric Value
dl 0
loc 52
rs 10
wmc 13

8 Methods

Rating   Name   Duplication   Size   Complexity  
A LocationTests.test_Location_toDictionary() 0 5 1
A LocationTests.test_LocationFactory_completeString() 0 8 2
A LocationTests.test_Location_toUrl() 0 5 1
A LocationTests.test_Location_parses_locationString() 0 6 2
A LocationTests.test_LocationFactory_fromString() 0 7 2
A LocationTests.test_Location_stringifies_to_full_locationString() 0 5 2
A LocationTests.test_Location_by_default_fills_in_local_hostname() 0 5 2
A LocationTests.setUp() 0 2 1
1
from mock import Mock, patch
2
from tests.ditest import DependencyInjectionTestBase
3
4
5
class LocationTests(DependencyInjectionTestBase):
6
7
    def setUp(self):
8
        super(LocationTests, self).setUp()
9
10
    def test_LocationFactory_fromString(self):
11
        from niprov.locationfactory import LocationFactory
12
        with patch('niprov.locationfactory.Location') as Location:
13
            factory = LocationFactory()
14
            out = factory.fromString('abc')
15
            Location.assert_called_with('abc')
16
            self.assertEqual(Location(), out)
17
18
    def test_Location_toDictionary(self):
19
        from niprov.location import Location
20
        loc = Location('HAL:/p/n1.f')
21
        expected = {'path':'/p/n1.f','hostname':'HAL','location':'HAL:/p/n1.f'}
22
        self.assertEqual(expected, loc.toDictionary())
23
24
    def test_Location_by_default_fills_in_local_hostname(self):
25
        from niprov.location import Location
26
        with patch('niprov.location.socket') as socket:
27
            loc = Location('/p/n1.f')
28
            self.assertEqual(socket.gethostname(), loc.hostname)
29
30
    def test_Location_parses_locationString(self):
31
        from niprov.location import Location
32
        with patch('niprov.location.socket') as socket:
33
            loc = Location('HAL:/p/n1.f')
34
            self.assertEqual('HAL', loc.hostname)
35
            self.assertEqual('/p/n1.f', loc.path)
36
37
    def test_Location_stringifies_to_full_locationString(self):
38
        from niprov.location import Location
39
        with patch('niprov.location.socket') as socket:
40
            loc = Location('HAL:/p/n1.f')
41
            self.assertEqual('HAL:/p/n1.f', str(loc))
42
43
    def test_LocationFactory_completeString(self):
44
        from niprov.locationfactory import LocationFactory
45
        with patch('niprov.locationfactory.Location') as Location:
46
            factory = LocationFactory()
47
            factory.fromString = Mock()
48
            outstr = factory.completeString('/j/k/l')
49
            factory.fromString.assert_called_with('/j/k/l')
50
            self.assertEqual(str(factory.fromString()), outstr)
51
52
    def test_Location_toUrl(self):
53
        from niprov.location import Location
54
        loc = Location('HAL:/p/n1.f')
55
        expected = 'file://HAL/p/n1.f'
56
        self.assertEqual(expected, loc.toUrl())
57
58