1{
2 lib,
3 aiohttp,
4 aioresponses,
5 buildPythonPackage,
6 cryptography,
7 fetchFromGitHub,
8 pytest-asyncio,
9 pytestCheckHook,
10 pythonOlder,
11 setuptools,
12 xmltodict,
13}:
14
15buildPythonPackage rec {
16 pname = "aioruckus";
17 version = "0.42";
18 pyproject = true;
19
20 disabled = pythonOlder "3.10";
21
22 src = fetchFromGitHub {
23 owner = "ms264556";
24 repo = "aioruckus";
25 tag = "v${version}";
26 hash = "sha256-UfyB3qGEDOQ39YA1AueCBXeoJhGH+XDCLZSFA+kpT2k=";
27 };
28
29 build-system = [ setuptools ];
30
31 dependencies = [
32 aiohttp
33 cryptography
34 xmltodict
35 ];
36
37 nativeCheckInputs = [
38 aioresponses
39 pytest-asyncio
40 pytestCheckHook
41 ];
42
43 pythonImportsCheck = [ "aioruckus" ];
44
45 disabledTests = [
46 # Those tests require a local ruckus device
47 "test_ap_info"
48 "test_authentication_error"
49 "test_connect_success"
50 "test_current_active_clients"
51 "test_mesh_info"
52 "test_system_info"
53 # Network access to Ruckus Cloud API
54 "test_r1_connect_no_webserver_error"
55 ];
56
57 meta = with lib; {
58 description = "Python client for Ruckus Unleashed and Ruckus ZoneDirector";
59 homepage = "https://github.com/ms264556/aioruckus";
60 license = licenses.bsd0;
61 maintainers = with maintainers; [ fab ];
62 };
63}