Skip to content

Commit bc33db3

Browse files
author
Luiko Czub
committed
revert renaming TestlinkAPIClient <- TestLinkAPIClient
Commit f423c7c changed the class name from *TestlinkAPIClient* to *TestLinkAPIClient* (small L to BIG L). Cause Python acts case sensitive, this change has the effect, that existing code will no more run - it will not find the class anymore. For compatibility reasons this change is reverted till a decision, if this meaningful change should be realised. orenault#2
1 parent f4ea3e9 commit bc33db3

File tree

9 files changed

+70
-29
lines changed

9 files changed

+70
-29
lines changed

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,25 @@ python example\TestLinkExample.py
4949
--devKey [Users devKey generated by TestLink]
5050
```
5151

52-
### Run nosetests with environment variables
52+
### Run unittests with TestLink Server interaction
5353

5454
```
5555
[PYENV]\testlink\Scripts\activate
56-
pip install nosetest
5756
set TESTLINK_API_PYTHON_SERVER_URL=http://[YOURSERVER]/testlink/lib/api/xmlrpc.php
5857
set TESTLINK_API_PYTHON_DEVKEY=[Users devKey generated by TestLink]
59-
nosetests test\test.py
58+
cd test\utest
59+
python -m unittest testlinkapicallservertest testlinkapi_online_test
6060
```
6161

62+
### Run unittests without TestLink Server interaction
63+
64+
```
65+
[PYENV]\testlink\Scripts\activate
66+
cd test\utest
67+
python -m unittest testlinkhelpertest testlinkapi_offline_test
68+
```
69+
70+
6271
Download
6372
--------
6473

example/TestLinkExample.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
|
2727
--- 5 automated test steps
2828
"""
29-
from testlink import TestLinkAPIClient, TestLinkHelper
29+
from testlink import TestlinkAPIClient, TestLinkHelper
3030
import sys
3131

3232
# precondition a)
@@ -42,7 +42,7 @@
4242
tl_helper.setParamsFromArgs('''Shows how to use the TestLinkAPI.
4343
=> Counts and lists the Projects
4444
=> Create a new Project with the following structure:''')
45-
myTestLink = tl_helper.connect(TestLinkAPIClient)
45+
myTestLink = tl_helper.connect(TestlinkAPIClient)
4646

4747

4848
NEWPROJECT="NEW_PROJECT_API"

src/testlink/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99

1010
from .testlinkerrors import TestLinkError
11-
from .testlinkapi import TestLinkAPIClient
11+
from .testlinkapi import TestlinkAPIClient
1212
from .testlink import TestLink
1313
from .testlinkhelper import TestLinkHelper

src/testlink/testlink.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
# Licensed under ???
77
# see https://github.com/orenault/TestLink-API-Python-client/issues/4
88

9-
from testlinkapi import TestLinkAPIClient, TestLinkHelper
9+
from testlinkapi import TestlinkAPIClient, TestLinkHelper
1010
from testlinkerrors import TestLinkError
1111
from datetime import date
1212

1313

14-
class TestLink(TestLinkAPIClient):
14+
class TestLink(TestlinkAPIClient):
1515
"""
1616
TestLink API library
1717
provide a user friendly library, with more robustness and error management

src/testlink/testlinkapi.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import testlinkerrors
1313

1414

15-
class TestLinkAPIClient(object):
15+
class TestlinkAPIClient(object):
1616

1717
__slots__ = ['server', 'devKey', 'stepsList', '_server_url']
1818

@@ -554,7 +554,7 @@ def getProjectIDByName(self, projectName):
554554

555555
def __str__(self):
556556
message = """
557-
TestLinkAPIClient - class %s - version %s
557+
TestlinkAPIClient - class %s - version %s
558558
@author: Olivier Renault, James Stock, TestLink-API-Python-client developers
559559
"""
560560
return message % (self.__class__.__name__, self.__VERSION__)
@@ -563,7 +563,7 @@ def __str__(self):
563563
if __name__ == "__main__":
564564
tl_helper = TestLinkHelper()
565565
tl_helper.setParamsFromArgs()
566-
myTestLink = tl_helper.connect(TestLinkAPIClient)
566+
myTestLink = tl_helper.connect(TestlinkAPIClient)
567567
print myTestLink
568568
print myTestLink.about()
569569

src/testlink/testlinkhelper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class TestLinkHelper(object):
2222
default value - 42
2323
command line arg - devKey
2424
25-
Examples 1 - init TestLinkAPIClient with environment variables
25+
Examples 1 - init TestlinkAPIClient with environment variables
2626
- define connection parameters in environment variables
2727
TESTLINK_API_PYTHON_DEVKEY and TESTLINK_API_PYTHON_DEVKEY
28-
- TestLinkHelper().connect(TestLinkAPIClient)
29-
-> returns a TestLinkAPIClient instance
28+
- TestLinkHelper().connect(TestlinkAPIClient)
29+
-> returns a TestlinkAPIClient instance
3030
3131
Examples 2 - init TestLink with command line arguments
3232
- call python module with command line arguments --server_url and --devKey

test/utest/testlinkapi_offline_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# no calls are send to a TestLink Server
1111

1212
import unittest
13-
from testlink import TestLinkAPIClient, TestLinkHelper
13+
from testlink import TestlinkAPIClient, TestLinkHelper
1414

1515
# scenario_a includes response from a testlink 1.9.3 server
1616
SCENARIO_A = {'getProjects' : [
@@ -73,7 +73,7 @@
7373
'getBuildsForTestPlan' : {'22' : ''}
7474
}
7575

76-
class DummyAPIClient(TestLinkAPIClient):
76+
class DummyAPIClient(TestlinkAPIClient):
7777
""" Dummy for Simulation TestLinkAPICLient.
7878
Overrides _callServer() Method to return test scenarios
7979
"""
@@ -104,7 +104,7 @@ def _callServer(self, methodAPI, argsAPI=None):
104104

105105

106106
class TestLinkAPIOfflineTestCase(unittest.TestCase):
107-
""" TestCases for TestLinkAPIClient - does not interacts with a TestLink Server.
107+
""" TestCases for TestlinkAPIClient - does not interacts with a TestLink Server.
108108
works with DummyAPIClientm which returns special test data
109109
"""
110110

test/utest/testlinkapi_online_test.py

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
# to cover all possible responses or argument combinations
1818

1919
import unittest
20-
from testlink import TestLinkAPIClient, TestLinkHelper
20+
from testlink import TestlinkAPIClient, TestLinkHelper
2121

2222

2323
class TestLinkAPIOnlineTestCase(unittest.TestCase):
24-
""" TestCases for TestLinkAPIClient - interacts with a TestLink Server.
24+
""" TestCases for TestlinkAPIClient - interacts with a TestLink Server.
2525
works with the example project NEW_PROJECT_API (see TestLinkExample.py)
2626
"""
2727

2828
def setUp(self):
29-
self.client = TestLinkHelper().connect(TestLinkAPIClient)
29+
self.client = TestLinkHelper().connect(TestlinkAPIClient)
3030

3131

3232
# def tearDown(self):
@@ -52,26 +52,32 @@ def test_echo(self):
5252
def test_doesUserExist_unknownID(self):
5353
response = self.client.doesUserExist('Big Bird')
5454
self.assertIn('Big Bird', response[0]['message'])
55+
self.assertEqual(10000, response[0]['code'])
5556

5657
def test_getBuildsForTestPlan_unknownID(self):
5758
response = self.client.getBuildsForTestPlan(4711)
5859
self.assertIn('4711', response[0]['message'])
60+
self.assertEqual(3000, response[0]['code'])
5961

6062
def test_getFirstLevelTestSuitesForTestProject_unknownID(self):
6163
response = self.client.getFirstLevelTestSuitesForTestProject(4711)
6264
self.assertIn('4711', response[0]['message'])
65+
self.assertEqual(7000, response[0]['code'])
6366

6467
def test_getFullPath_unknownID(self):
6568
response = self.client.getFullPath(4711)
6669
self.assertIn('getFullPath', response[0]['message'])
70+
self.assertEqual(234, response[0]['code'])
6771

6872
def test_getLastExecutionResult_unknownID(self):
6973
response = self.client.getLastExecutionResult(4711, 4712)
7074
self.assertIn('4711', response[0]['message'])
75+
self.assertEqual(3000, response[0]['code'])
7176

7277
def test_getLatestBuildForTestPlan_unknownID(self):
7378
response = self.client.getLatestBuildForTestPlan(4711)
7479
self.assertIn('4711', response[0]['message'])
80+
self.assertEqual(3000, response[0]['code'])
7581

7682
def test_getProjects(self):
7783
response = self.client.getProjects()
@@ -80,85 +86,111 @@ def test_getProjects(self):
8086
def test_getProjectTestPlans_unknownID(self):
8187
response = self.client.getProjectTestPlans(4711)
8288
self.assertIn('4711', response[0]['message'])
89+
self.assertEqual(7000, response[0]['code'])
8390

8491
def test_getTestCase_unknownID(self):
8592
response = self.client.getTestCase(4711)
86-
self.assertIn('4711', response[0]['message'])
93+
# FAILURE in 1.9.3 API message: replacement does not work
94+
# The Test Case ID (testcaseid: %s) provided does not exist!
95+
#self.assertIn('4711', response[0]['message'])
96+
self.assertEqual(5000, response[0]['code'])
8797

8898
def test_getTestCaseAttachments_unknownID(self):
8999
response = self.client.getTestCaseAttachments(4711)
90-
self.assertIn('4711', response[0]['message'])
100+
# FAILURE in 1.9.3 API message: replacement does not work
101+
# The Test Case ID (testcaseid: %s) provided does not exist!
102+
#self.assertIn('4711', response[0]['message'])
103+
self.assertEqual(5000, response[0]['code'])
91104

92105
def test_getTestCaseCustomFieldDesignValue_unknownID(self):
93106
response = self.client.getTestCaseCustomFieldDesignValue(
94107
4712, 1, 4711, 'a_field', 'a_detail')
95108
self.assertIn('4711', response[0]['message'])
109+
self.assertEqual(7000, response[0]['code'])
96110

97111
def test_getTestCaseIDByName_unknownID(self):
98112
response = self.client.getTestCaseIDByName('Big Bird')
99113
self.assertIn('getTestCaseIDByName', response[0]['message'])
114+
self.assertEqual(5030, response[0]['code'])
100115

101116
def test_getTestCasesForTestPlan_unknownID(self):
102117
response = self.client.getTestCasesForTestPlan(4711)
103118
self.assertIn('4711', response[0]['message'])
119+
self.assertEqual(3000, response[0]['code'])
104120

105121
def test_getTestCasesForTestSuite_unknownID(self):
106122
response = self.client.getTestCasesForTestSuite(4711, 2, 'a_detail')
107123
self.assertIn('4711', response[0]['message'])
124+
self.assertEqual(8000, response[0]['code'])
108125

109126
def test_getTestPlanByName_unknownID(self):
110127
response = self.client.getTestPlanByName('project 4711', 'plan 4712')
111128
self.assertIn('4711', response[0]['message'])
129+
self.assertEqual(7011, response[0]['code'])
112130

113131
def test_getTestPlanPlatforms_unknownID(self):
114132
response = self.client.getTestPlanPlatforms(4711)
115133
self.assertIn('4711', response[0]['message'])
134+
self.assertEqual(3000, response[0]['code'])
116135

117136
def test_getTestProjectByName_unknownID(self):
118137
response = self.client.getTestProjectByName('project 4711')
119138
self.assertIn('4711', response[0]['message'])
139+
self.assertEqual(7011, response[0]['code'])
120140

121141
def test_getTestSuiteByID_unknownID(self):
122142
response = self.client.getTestSuiteByID(4711)
123143
self.assertIn('4711', response[0]['message'])
144+
self.assertEqual(8000, response[0]['code'])
124145

125146
def test_getTestSuitesForTestPlan_unknownID(self):
126147
response = self.client.getTestSuitesForTestPlan(4711)
127148
self.assertIn('4711', response[0]['message'])
149+
self.assertEqual(3000, response[0]['code'])
128150

129151
def test_getTestSuitesForTestSuite_unknownID(self):
130152
response = self.client.getTestSuitesForTestSuite(4711)
131153
self.assertIn('4711', response[0]['message'])
154+
self.assertEqual(8000, response[0]['code'])
132155

133156
def test_getTotalsForTestPlan_unknownID(self):
134157
response = self.client.getTotalsForTestPlan(4711)
135158
self.assertIn('4711', response[0]['message'])
159+
self.assertEqual(3000, response[0]['code'])
136160

137161
def test_createTestProject_unknownID(self):
138162
response = self.client.createTestProject('', 'P4711')
139163
self.assertIn('Empty name', response[0]['message'])
164+
self.assertEqual(7001, response[0]['code'])
140165

141166
def test_createBuild_unknownID(self):
142167
response = self.client.createBuild(4711, 'Build 4712', 'note 4713')
143168
self.assertIn('4711', response[0]['message'])
169+
self.assertEqual(3000, response[0]['code'])
144170

145171
def test_createTestPlan_unknownID(self):
146172
response = self.client.createTestPlan('plan 4711', 'project 4712')
147173
self.assertIn('4712', response[0]['message'])
174+
self.assertEqual(7011, response[0]['code'])
148175

149176
def test_createTestSuite_unknownID(self):
150177
response = self.client.createTestSuite( 4711, 'suite 4712', 'detail 4713')
151178
self.assertIn('4711', response[0]['message'])
179+
self.assertEqual(7000, response[0]['code'])
152180

153181
def test_createTestCase_unknownID(self):
154182
response = self.client.createTestCase('case 4711', 4712, 4713,
155183
'Big Bird', 'summary 4714')
156184
self.assertIn('4713', response[0]['message'])
185+
self.assertEqual(7000, response[0]['code'])
157186

158187
def test_reportTCResult_unknownID(self):
159188
response = self.client.reportTCResult(4711, 4712, 'build 4713', 'p',
160189
'note 4714')
161-
self.assertIn('4711', response[0]['message'])
190+
# FAILURE in 1.9.3 API message: replacement does not work
191+
# The Test Case ID (testcaseid: %s) provided does not exist!
192+
#self.assertIn('4711', response[0]['message'])
193+
self.assertEqual(5000, response[0]['code'])
162194

163195
# def test_uploadExecutionAttachment_unknownID(self):
164196
# response = self.client.uploadExecutionAttachment('file 4711', 4712,

test/utest/testlinkapicallservertest.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# TESTLINK_API_PYTHON_DEVKEY and TESTLINK_API_PYTHON_DEVKEY
1212

1313
import unittest
14-
from testlink import TestLinkAPIClient, TestLinkHelper
14+
from testlink import TestlinkAPIClient, TestLinkHelper
1515
from testlink import testlinkerrors
1616

1717

@@ -22,14 +22,14 @@ class TestLinkAPIcallServerTestCase(unittest.TestCase):
2222
def test_callServer_noArgs(self):
2323
""" test _callServer() - calling method with no args """
2424

25-
client = TestLinkHelper().connect(TestLinkAPIClient)
25+
client = TestLinkHelper().connect(TestlinkAPIClient)
2626
response = client._callServer('sayHello')
2727
self.assertEqual('Hello!', response)
2828

2929
def test_callServer_withArgs(self):
3030
""" test _callServer() - calling method with args """
3131

32-
client = TestLinkHelper().connect(TestLinkAPIClient)
32+
client = TestLinkHelper().connect(TestlinkAPIClient)
3333
response = client._callServer('repeat', {'str' : 'some arg'})
3434
self.assertEqual('You said: some arg', response)
3535

@@ -38,22 +38,22 @@ def test_callServer_ProtocollError(self):
3838

3939
server_url = TestLinkHelper()._server_url
4040
bad_server_url = server_url.split('xmlrpc.php')[0]
41-
client = TestLinkHelper(bad_server_url).connect(TestLinkAPIClient)
41+
client = TestLinkHelper(bad_server_url).connect(TestlinkAPIClient)
4242
def a_func(api_client): api_client._callServer('sayHello')
4343
self.assertRaises(testlinkerrors.TLConnectionError, a_func, client)
4444

4545
def test_callServer_socketError(self):
4646
""" test _callServer() - Server raises a socket Error (IOError) """
4747

4848
bad_server_url = 'http://111.222.333.4/testlink/lib/api/xmlrpc.php'
49-
client = TestLinkHelper(bad_server_url).connect(TestLinkAPIClient)
49+
client = TestLinkHelper(bad_server_url).connect(TestlinkAPIClient)
5050
def a_func(api_client): api_client._callServer('sayHello')
5151
self.assertRaises(testlinkerrors.TLConnectionError, a_func, client)
5252

5353
def test_callServer_FaultError(self):
5454
""" test _callServer() - Server raises Fault Error """
5555

56-
client = TestLinkHelper().connect(TestLinkAPIClient)
56+
client = TestLinkHelper().connect(TestlinkAPIClient)
5757
def a_func(api_client): api_client._callServer('sayGoodBye')
5858
self.assertRaises(testlinkerrors.TLAPIError, a_func, client)
5959

0 commit comments

Comments
 (0)