Skip to content

Commit 8b98ca9

Browse files
authored
try to fix more builds (gijzelaerr#502)
* try to fix more builds * trying to avoid circular import * fix more errors and warnings * lets see if this helps * run precommit
1 parent d27e373 commit 8b98ca9

File tree

9 files changed

+112
-102
lines changed

9 files changed

+112
-102
lines changed

.github/actions/prepare_snap7/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ runs:
1010
steps:
1111
- name: Cache snap7-archive
1212
id: snap7-archive
13-
uses: actions/cache@v3
13+
uses: actions/cache@v4
1414
with:
1515
path: snap7-full-1.4.2.7z
1616
key: ${{ inputs.snap7-archive-url }}

.github/workflows/build-and-test-arm64.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ jobs:
6262
-v $PWD/pyproject.toml:/pyproject.toml \
6363
-v $PWD/wheelhouse:/wheelhouse \
6464
"arm64v8/python:${{ matrix.python-version }}-bookworm" /bin/bash -s <<EOF
65+
python3 -m pip install --upgrade pip
6566
python3 -m pip install $(ls wheelhouse/*_aarch64.whl)
6667
python3 -m pip install pytest
67-
python -m pytest tests/ -m "server or util or client or mainloop or partner"
68+
python3 -m pytest tests/test_client.py tests/test_mainloop.py tests/test_server.py tests/test_util.py
6869
EOF

.github/workflows/doc.yml

+8-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@ jobs:
1414
run: |
1515
sudo apt-get update -qq
1616
sudo apt-get install -y python3-pip make
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: 3.9
1721
- name: Install dependencies
1822
run: |
19-
sudo python3 -m pip install --upgrade pip
20-
sudo python3 -m pip install .[doc]
23+
python3 -m venv venv
24+
venv/bin/pip install --upgrade pip
25+
venv/bin/pip install ".[doc,cli]"
2126
- name: Run doc
2227
run: |
28+
source venv/bin/activate
2329
cd doc
2430
make html

.github/workflows/linux.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ jobs:
2727
python-version: ${{ matrix.python-version }}
2828
- name: Install dependencies
2929
run: |
30-
python3 -m pip install --upgrade pip
31-
python3 -m pip install .[test]
30+
python3 -m venv venv
31+
venv/bin/pip install --upgrade pip
32+
venv/bin/pip install ".[test]"
3233
- name: Run pytest
3334
run: |
34-
which pytest
35-
pytest -m "server or util or client or mainloop"
36-
sudo /opt/hostedtoolcache/Python/${{ matrix.python-version }}*/x64/bin/pytest -m partner
35+
venv/bin/pytest tests/test_client.py tests/test_mainloop.py tests/test_server.py tests/test_util.py
36+
sudo venv/bin/pytest tests/test_partner.py

.github/workflows/pre-commit.yml

+2
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ jobs:
1010
steps:
1111
- uses: actions/checkout@v4
1212
- uses: actions/setup-python@v5
13+
with:
14+
python-version: '3.8'
1315
- uses: pre-commit/[email protected]

snap7/util/db.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66

77
from snap7.client import Client
88
from snap7.types import Areas
9-
from snap7.util import (
10-
parse_specification,
9+
10+
from snap7.util import parse_specification
11+
from snap7.util.getters import (
1112
get_bool,
1213
get_fstring,
1314
get_string,
@@ -31,6 +32,8 @@
3132
get_char,
3233
get_wchar,
3334
get_dtl,
35+
)
36+
from snap7.util.setters import (
3437
set_bool,
3538
set_fstring,
3639
set_string,

tests/bla.py

-3
This file was deleted.

tests/test_server.py

+24-23
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
import unittest
55
from unittest import mock
66

7-
import snap7.error
8-
import snap7.server
9-
import snap7.types
7+
from snap7.common import error_text
8+
from snap7.error import server_errors
9+
from snap7.server import Server
10+
from snap7.types import SrvEvent, mkEvent, mkLog, srvAreaDB, LocalPort, WorkInterval, MaxClients, RemotePort
1011

1112
logging.basicConfig(level=logging.WARNING)
1213

1314

1415
@pytest.mark.server
1516
class TestServer(unittest.TestCase):
1617
def setUp(self):
17-
self.server = snap7.server.Server()
18+
self.server = Server()
1819
self.server.start(tcpport=1102)
1920

2021
def tearDown(self):
@@ -23,29 +24,29 @@ def tearDown(self):
2324

2425
def test_register_area(self):
2526
db1_type = ctypes.c_char * 1024
26-
self.server.register_area(snap7.types.srvAreaDB, 3, db1_type())
27+
self.server.register_area(srvAreaDB, 3, db1_type())
2728

2829
def test_error(self):
29-
for error in snap7.error.server_errors:
30-
snap7.common.error_text(error, context="client")
30+
for error in server_errors:
31+
error_text(error, context="client")
3132

3233
def test_event(self):
33-
event = snap7.types.SrvEvent()
34+
event = SrvEvent()
3435
self.server.event_text(event)
3536

3637
def test_get_status(self):
3738
server, cpu, num_clients = self.server.get_status()
3839

3940
def test_get_mask(self):
40-
self.server.get_mask(snap7.types.mkEvent)
41-
self.server.get_mask(snap7.types.mkLog)
41+
self.server.get_mask(mkEvent)
42+
self.server.get_mask(mkLog)
4243
# invalid kind
4344
self.assertRaises(Exception, self.server.get_mask, 3)
4445

4546
def test_lock_area(self):
4647
from threading import Thread
4748

48-
area_code = snap7.types.srvAreaDB
49+
area_code = srvAreaDB
4950
index = 1
5051
db1_type = ctypes.c_char * 1024
5152
# we need to register first
@@ -72,10 +73,10 @@ def test_set_cpu_status(self):
7273
self.assertRaises(ValueError, self.server.set_cpu_status, -1)
7374

7475
def test_set_mask(self):
75-
self.server.set_mask(kind=snap7.types.mkEvent, mask=10)
76+
self.server.set_mask(kind=mkEvent, mask=10)
7677

7778
def test_unlock_area(self):
78-
area_code = snap7.types.srvAreaDB
79+
area_code = srvAreaDB
7980
index = 1
8081
db1_type = ctypes.c_char * 1024
8182

@@ -87,7 +88,7 @@ def test_unlock_area(self):
8788
self.server.unlock_area(area_code, index)
8889

8990
def test_unregister_area(self):
90-
area_code = snap7.types.srvAreaDB
91+
area_code = srvAreaDB
9192
index = 1
9293
db1_type = ctypes.c_char * 1024
9394
self.server.register_area(area_code, index, db1_type())
@@ -107,7 +108,7 @@ def read_events_call_back(event):
107108

108109
def test_pick_event(self):
109110
event = self.server.pick_event()
110-
self.assertEqual(type(event), snap7.types.SrvEvent)
111+
self.assertEqual(type(event), SrvEvent)
111112
event = self.server.pick_event()
112113
self.assertFalse(event)
113114

@@ -121,12 +122,12 @@ def test_start_to(self):
121122

122123
def test_get_param(self):
123124
# check the defaults
124-
self.assertEqual(self.server.get_param(snap7.types.LocalPort), 1102)
125-
self.assertEqual(self.server.get_param(snap7.types.WorkInterval), 100)
126-
self.assertEqual(self.server.get_param(snap7.types.MaxClients), 1024)
125+
self.assertEqual(self.server.get_param(LocalPort), 1102)
126+
self.assertEqual(self.server.get_param(WorkInterval), 100)
127+
self.assertEqual(self.server.get_param(MaxClients), 1024)
127128

128129
# invalid param for server
129-
self.assertRaises(Exception, self.server.get_param, snap7.types.RemotePort)
130+
self.assertRaises(Exception, self.server.get_param, RemotePort)
130131

131132

132133
@pytest.mark.server
@@ -136,10 +137,10 @@ class TestServerBeforeStart(unittest.TestCase):
136137
"""
137138

138139
def setUp(self):
139-
self.server = snap7.server.Server()
140+
self.server = Server()
140141

141142
def test_set_param(self):
142-
self.server.set_param(snap7.types.LocalPort, 1102)
143+
self.server.set_param(LocalPort, 1102)
143144

144145

145146
@pytest.mark.server
@@ -161,11 +162,11 @@ def tearDown(self):
161162
self.loadlib_patch.stop()
162163

163164
def test_create(self):
164-
snap7.server.Server(log=False)
165+
Server(log=False)
165166
self.mocklib.Srv_Create.assert_called_once()
166167

167168
def test_gc(self):
168-
server = snap7.server.Server(log=False)
169+
server = Server(log=False)
169170
del server
170171
self.mocklib.Srv_Destroy.assert_called_once()
171172

0 commit comments

Comments
 (0)