File: test_installed.py

package info (click to toggle)
python-pkginfo 1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 416 kB
  • ctags: 354
  • sloc: python: 1,487; makefile: 76
file content (148 lines) | stat: -rw-r--r-- 5,885 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import unittest

class InstalledTests(unittest.TestCase):

    def _getTargetClass(self):
        from pkginfo.installed import Installed
        return Installed

    def _makeOne(self, filename=None, metadata_version=None):
        if metadata_version is not None:
            return self._getTargetClass()(filename, metadata_version)
        return self._getTargetClass()(filename)

    def test_ctor_w_package_no___file__(self):
        import sys
        import warnings
        old_filters = warnings.filters[:]
        warnings.filterwarnings('ignore')
        try:
            installed = self._makeOne(sys)
            self.assertEqual(installed.package, sys)
            self.assertEqual(installed.package_name, 'sys')
            self.assertEqual(installed.metadata_version, None)
        finally:
            warnings.filters[:] = old_filters

    def test_ctor_w_package(self):
        import pkginfo
        from pkginfo.tests import _checkSample
        from pkginfo.tests import _defaultMetadataVersion
        EXPECTED =  _defaultMetadataVersion()
        installed = self._makeOne(pkginfo)
        self.assertEqual(installed.package, pkginfo)
        self.assertEqual(installed.package_name, 'pkginfo')
        self.assertEqual(installed.metadata_version, EXPECTED)
        _checkSample(self, installed)

    def test_ctor_w_no___package___falls_back_to___name__(self):
        import sys
        import wsgiref
        installed = self._makeOne(wsgiref)
        self.assertEqual(installed.package, wsgiref)
        self.assertEqual(installed.package_name, 'wsgiref')
        if sys.version_info[:2] >= (3, 3):
            self.assertEqual(installed.metadata_version, None)
        else:
            self.assertEqual(installed.metadata_version, '1.0')

    def test_ctor_w_package_no_PKG_INFO(self):
        import sys
        import types
        import warnings
        old_filters = warnings.filters[:]
        warnings.filterwarnings('ignore')
        try:
            installed = self._makeOne(types)
            self.assertEqual(installed.package, types)
            self.assertEqual(installed.package_name, 'types')
            if sys.version_info[:2] == (3, 3):
                self.assertEqual(installed.metadata_version, '1.1')
            else:
                self.assertEqual(installed.metadata_version, None)
        finally:
            warnings.filters[:] = old_filters

    def test_ctor_w_package_and_metadata_version(self):
        import pkginfo
        from pkginfo.tests import _checkSample
        installed = self._makeOne(pkginfo, metadata_version='1.2')
        self.assertEqual(installed.metadata_version, '1.2')
        self.assertEqual(installed.package.__name__, 'pkginfo')
        _checkSample(self, installed)

    def test_ctor_w_name(self):
        import pkginfo
        from pkginfo.tests import _checkSample
        from pkginfo.tests import _defaultMetadataVersion
        EXPECTED = _defaultMetadataVersion()
        installed = self._makeOne('pkginfo')
        self.assertEqual(installed.metadata_version, EXPECTED)
        self.assertEqual(installed.package, pkginfo)
        self.assertEqual(installed.package_name, 'pkginfo')
        _checkSample(self, installed)

    def test_ctor_w_name_and_metadata_version(self):
        import pkginfo
        from pkginfo.tests import _checkSample
        installed = self._makeOne('pkginfo', metadata_version='1.2')
        self.assertEqual(installed.metadata_version, '1.2')
        self.assertEqual(installed.package, pkginfo)
        self.assertEqual(installed.package_name, 'pkginfo')
        _checkSample(self, installed)

    def test_ctor_w_invalid_name(self):
        import warnings
        old_filters = warnings.filters[:]
        warnings.filterwarnings('ignore')
        try:
            installed = self._makeOne('nonesuch')
            self.assertEqual(installed.package, None)
            self.assertEqual(installed.package_name, 'nonesuch')
            self.assertEqual(installed.metadata_version, None)
        finally:
            warnings.filters[:] = old_filters

    def test_ctor_w_egg_info_as_file(self):
        import pkginfo.tests.funny
        installed = self._makeOne('pkginfo.tests.funny')
        self.assertEqual(installed.metadata_version, '1.0')
        self.assertEqual(installed.package, pkginfo.tests.funny)
        self.assertEqual(installed.package_name, 'pkginfo.tests.funny')

    def test_namespaced_pkg_installed_via_setuptools(self):
        import os
        import sys
        where, _ = os.path.split(__file__)
        wonky = os.path.join(where, 'wonky')
        oldpath = sys.path[:]
        try:
            sys.path.append(wonky)
            import namespaced.wonky
            installed = self._makeOne('namespaced.wonky')
            self.assertEqual(installed.metadata_version, '1.0')
            self.assertEqual(installed.package, namespaced.wonky)
            self.assertEqual(installed.package_name, 'namespaced.wonky')
        finally:
            sys.path[:] = oldpath
            sys.modules.pop('namespaced.wonky', None)
            sys.modules.pop('namespaced', None)

    def test_namespaced_pkg_installed_via_pth(self):
        # E.g., installed by a Linux distro
        import os
        import sys
        where, _ = os.path.split(__file__)
        manky = os.path.join(where, 'manky')
        oldpath = sys.path[:]
        try:
            sys.path.append(manky)
            import namespaced.manky
            installed = self._makeOne('namespaced.manky')
            self.assertEqual(installed.metadata_version, '1.0')
            self.assertEqual(installed.package, namespaced.manky)
            self.assertEqual(installed.package_name, 'namespaced.manky')
        finally:
            sys.path[:] = oldpath
            sys.modules.pop('namespaced.manky', None)
            sys.modules.pop('namespaced', None)