File: test_rest_endpoints.py

package info (click to toggle)
python-jenkins 1.8.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 556 kB
  • sloc: python: 6,099; makefile: 150
file content (39 lines) | stat: -rw-r--r-- 1,455 bytes parent folder | download | duplicates (2)
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
import jenkins
from tests.base import JenkinsTestBase

# Vars in the jenkins module scope that do not need validating
VAR_WHITELIST = ['__doc__',
                 '__file__',
                 '__name__',
                 '__package__',
                 'CRUMB_URL',
                 'DEFAULT_HEADERS',
                 'EMPTY_CONFIG_XML',
                 'EMPTY_FOLDER_XML',
                 'EMPTY_PROMO_CONFIG_XML',
                 'EMPTY_VIEW_CONFIG_XML',
                 'INFO',
                 'LAUNCHER_SSH',
                 'LAUNCHER_COMMAND',
                 'LAUNCHER_JNLP',
                 'LAUNCHER_WINDOWS_SERVICE',
                 'NODE_TYPE',
                 'PROMO_RECONFIG_XML',
                 'RECONFIG_XML']


class JenkinsRestTest(JenkinsTestBase):

    # If there is no filter (depth or tree) we will get an exception
    # on some Jenkins instances
    def test_url_has_filter(self):
        for var in dir(jenkins):
            if var in VAR_WHITELIST:
                continue
            # Misses unicode on 2.x
            val = getattr(jenkins, var)
            if isinstance(val, str):
                # If we end the path in api/json and don't have depth or tree encoded, fail
                self.assertEqual(val.endswith('api/json'), False,
                                 "URLS that end in 'api/json' must be called with depth or tree:" +
                                 "var: [{}] val: [{}]".format(var, val))