Skip to content

Commit 76cc256

Browse files
authored
update to python3.13 and fix tests (#411)
1 parent 4086622 commit 76cc256

7 files changed

Lines changed: 37 additions & 28 deletions

File tree

Dockerfile.test

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
FROM python:3.11-slim
1+
FROM python:3.13-slim
22

3-
# Install system dependencies
3+
# Install system dependencies including build tools for compiling Python packages
44
RUN apt-get update && apt-get install -y --no-install-recommends \
55
libmagic1 \
6+
gcc \
7+
g++ \
8+
make \
9+
libffi-dev \
610
&& rm -rf /var/lib/apt/lists/*
711

812
# Install poetry

dothttp/utils/json_utils.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ def floatstr(
7979

8080
return text
8181

82+
# Convert indent to string if it's an integer (for Python 3.13+ compatibility)
83+
indent = self.indent
84+
if isinstance(indent, int):
85+
indent = ' ' * indent
86+
8287
if _one_shot and c_make_encoder is not None and self.indent is None:
8388
_iterencode = c_make_encoder(
8489
markers,
@@ -96,7 +101,7 @@ def floatstr(
96101
markers,
97102
self.default,
98103
_encoder,
99-
self.indent,
104+
indent,
100105
floatstr,
101106
self.key_separator,
102107
self.item_separator,

test/core/test_script_execution.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def test_positive(self):
9797
"""
9898
class SampleTestCase(unittest.TestCase):
9999
def test_status_code(self):
100-
self.assertEquals(200 , client.response.status_code)
100+
self.assertEqual(200 , client.response.status_code)
101101
"""
102102
)
103103

@@ -140,26 +140,26 @@ def pre_request():
140140
props.add_command_line_property("ram", "raju")
141141
script_exe = ScriptExecutionPython(httpdef, props)
142142
script_exe.pre_request_script()
143-
self.assertEquals({"ram": "ranga"}, httpdef.headers)
144-
self.assertEquals({"new": "value", "ram": "raju"}, script_exe.client.properties)
143+
self.assertEqual({"ram": "ranga"}, httpdef.headers)
144+
self.assertEqual({"new": "value", "ram": "raju"}, script_exe.client.properties)
145145

146146
def test_math_n_headers(self):
147147
resp = self.get_script_exe(
148148
"""
149149
class SampleTestCase(unittest.TestCase):
150150
def test_math(self):
151-
self.assertEquals(4 , math.pow(2,2))
151+
self.assertEqual(4 , math.pow(2,2))
152152
153153
def test_headers(self):
154-
self.assertEquals("sample_value", client.response.headers.get("sample_header"))
154+
self.assertEqual("sample_value", client.response.headers.get("sample_header"))
155155
156156
def test_date(self):
157157
datetime.datetime.now()
158158
159159
def test_hash(self):
160160
hashobj = hashlib.sha512()
161161
hashobj.update(b'ram')
162-
self.assertEquals("92f35115cca41c3270b11813164b0845108686761d73b3e6e4e95ae8380fbdd92c1b9d6ff0e6181214486e9eb7ccdd779ffe1b04b161e510c7d8e7da715eb0ae",
162+
self.assertEqual("92f35115cca41c3270b11813164b0845108686761d73b3e6e4e95ae8380fbdd92c1b9d6ff0e6181214486e9eb7ccdd779ffe1b04b161e510c7d8e7da715eb0ae",
163163
hashobj.hexdigest())
164164
165165
"""
@@ -206,7 +206,7 @@ def test_assertion_failure(self):
206206
"""
207207
class SampleTestCase(unittest.TestCase):
208208
def test_status_code(self):
209-
self.assertEquals(401 , client.response.status_code)
209+
self.assertEqual(401 , client.response.status_code)
210210
"""
211211
)
212212
self.assertEqual(

test/core/test_substitution.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,15 +197,15 @@ def test_system_command(self):
197197
file=f"{base_dir}/system_command.http", target="2"
198198
)
199199
request_data = json.loads(system_command_request.body)
200-
self.assertEquals(request_data, {"sub": "world\n"}, "insecure flag is set")
200+
self.assertEqual(request_data, {"sub": "world\n"}, "insecure flag is set")
201201

202202

203203
# test system command substitution as insecure flag is base
204204
system_command_request: PreparedRequest = self.get_request(
205205
file=f"{base_dir}/system_command.http", target="parent"
206206
)
207207
request_data = json.loads(system_command_request.body)
208-
self.assertEquals(request_data, {"sub": "hello\n"}, "parent has insecure flag is set")
208+
self.assertEqual(request_data, {"sub": "hello\n"}, "parent has insecure flag is set")
209209

210210

211211

@@ -214,7 +214,7 @@ def test_system_command(self):
214214
file=f"{base_dir}/system_command.http", target="child"
215215
)
216216
request_data = json.loads(system_command_request.body)
217-
self.assertEquals(request_data, {"sub": "hello\n"}, "grand parent has insecure flag is set")
217+
self.assertEqual(request_data, {"sub": "hello\n"}, "grand parent has insecure flag is set")
218218

219219

220220
def test_substitution_from_env_variable(self):

test/extensions/test_commands.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def test_hover_url(self):
118118
id=1,
119119
)
120120
)
121-
self.assertEquals(
121+
self.assertEqual(
122122
result.result["resolved"], "http://localhost:8000/get")
123123

124124
def test_hover_url_content(self):
@@ -131,7 +131,7 @@ def test_hover_url_content(self):
131131
id=1,
132132
)
133133
)
134-
self.assertEquals(
134+
self.assertEqual(
135135
result.result["resolved"], "http://localhost:8000/get")
136136

137137
def test_hover_json_content(self):
@@ -153,7 +153,7 @@ def test_hover_json_content(self):
153153
)
154154
)
155155
expected = {'totalSeconds': 10800}
156-
self.assertEquals(expected, result.result["resolved"])
156+
self.assertEqual(expected, result.result["resolved"])
157157

158158
index2 = content.find("numOfHours * 60 * 60")
159159
result2 = resolve_handler.run(
@@ -163,7 +163,7 @@ def test_hover_json_content(self):
163163
id=2,
164164
)
165165
)
166-
self.assertEquals(10800, result2.result["resolved"])
166+
self.assertEqual(10800, result2.result["resolved"])
167167

168168
def test_hover_import_content(self):
169169
resolve_handler = GetHoveredResolvedParamContentHandler()
@@ -186,7 +186,7 @@ def test_hover_import_content(self):
186186
)
187187
)
188188
expected = "https://req.dothttp.dev/ram"
189-
self.assertEquals(expected, result.result["resolved"])
189+
self.assertEqual(expected, result.result["resolved"])
190190

191191
def test_hover_context_content(self):
192192
resolve_handler = GetHoveredResolvedParamContentHandler()
@@ -212,7 +212,7 @@ def test_hover_context_content(self):
212212
)
213213
)
214214
expected = "https://httpbin.org/get/ram"
215-
self.assertEquals(expected, result.result["resolved"])
215+
self.assertEqual(expected, result.result["resolved"])
216216

217217
def test_hover_context_with_no_target(self):
218218
resolve_handler = GetHoveredResolvedParamContentHandler()
@@ -245,7 +245,7 @@ def test_hover_context_with_no_target(self):
245245
)
246246
)
247247
expected = "https://httpbin.org/get/ranga"
248-
self.assertEquals(expected, result.result["resolved"])
248+
self.assertEqual(expected, result.result["resolved"])
249249

250250
index = content.find("rama")
251251
result = resolve_handler.run(
@@ -257,7 +257,7 @@ def test_hover_context_with_no_target(self):
257257
)
258258
)
259259
expected = {"totalSeconds": 10800, "rama": "ranga"}
260-
self.assertEquals(expected, result.result["resolved"])
260+
self.assertEqual(expected, result.result["resolved"])
261261

262262
# look for property name and resolve it
263263

@@ -270,7 +270,7 @@ def test_hover_context_with_no_target(self):
270270
id=1,
271271
)
272272
)
273-
self.assertEquals({'name': 'numOfSeconds', 'value': 10800}, result.result["property_at_pos"])
273+
self.assertEqual({'name': 'numOfSeconds', 'value': 10800}, result.result["property_at_pos"])
274274

275275
def test_hover_import_relative_content(self):
276276
resolve_handler = GetHoveredResolvedParamContentHandler()
@@ -293,7 +293,7 @@ def test_hover_import_relative_content(self):
293293
)
294294
)
295295
expected = "https://req.dothttp.dev/ram"
296-
self.assertEquals(expected, result.result["resolved"])
296+
self.assertEqual(expected, result.result["resolved"])
297297

298298

299299
def test_hover_query(self):
@@ -316,7 +316,7 @@ def test_hover_query(self):
316316
)
317317
)
318318
expected = "ram=ranga"
319-
self.assertEquals(expected, result.result["resolved"])
319+
self.assertEqual(expected, result.result["resolved"])
320320

321321

322322
def test_hover_headers(self):
@@ -339,7 +339,7 @@ def test_hover_headers(self):
339339
)
340340
)
341341
expected = {'ram': 'ranga'}
342-
self.assertEquals(expected, result.result["resolved"])
342+
self.assertEqual(expected, result.result["resolved"])
343343

344344

345345
class FileExecute(TestBase):

test/extensions/test_content.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def test_var_override(self):
242242
curl=False,
243243
)
244244
result.load_def()
245-
self.assertEquals(result.httpdef.payload.json["a"], 10)
245+
self.assertEqual(result.httpdef.payload.json["a"], 10)
246246

247247

248248
def test_from_context_with_var(self):
@@ -265,4 +265,4 @@ def test_from_context_with_var(self):
265265
curl=False,
266266
)
267267
result.load_def()
268-
self.assertEquals(result.httpdef.payload.json["a"], 12)
268+
self.assertEqual(result.httpdef.payload.json["a"], 12)

test/extensions/test_http2postman.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def error_scenario(self, input_file):
100100
return result.result
101101

102102
def test_negative(self):
103-
self.assertEquals(
103+
self.assertEqual(
104104
{"error": True, "error_message": "filename not existent or invalid link"},
105105
self.error_scenario("ram.http"),
106106
)

0 commit comments

Comments
 (0)