Skip to content

Commit

Permalink
add missing unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mayeut committed Feb 2, 2025
1 parent 4350408 commit 1828679
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 14 deletions.
36 changes: 22 additions & 14 deletions tests/unit/test_architecture.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,40 @@


@pytest.mark.parametrize(
("reported_arch", "expected_arch"),
("sys_platform", "reported_arch", "expected_arch"),
[
("armv7l", Architecture.armv7l),
("armv8l", Architecture.armv7l),
("aarch64", Architecture.armv7l),
("i686", Architecture.i686),
("x86_64", Architecture.i686),
("linux", "armv7l", Architecture.armv7l),
("linux", "armv8l", Architecture.armv7l),
("linux", "aarch64", Architecture.armv7l),
("linux", "i686", Architecture.i686),
("linux", "x86_64", Architecture.i686),
("win32", "x86", Architecture.i686),
("win32", "AMD64", Architecture.i686),
],
)
def test_32bits_arch_name(reported_arch, expected_arch, monkeypatch):
def test_32bits_arch_name(sys_platform, reported_arch, expected_arch, monkeypatch):
monkeypatch.setattr(sys, "platform", sys_platform)
monkeypatch.setattr(platform, "machine", lambda: reported_arch)
machine = Architecture.get_native_architecture(bits=32)
assert machine == expected_arch


@pytest.mark.parametrize(
("reported_arch", "expected_arch"),
("sys_platform", "reported_arch", "expected_arch"),
[
("armv8l", Architecture.aarch64),
("aarch64", Architecture.aarch64),
("ppc64le", Architecture.ppc64le),
("i686", Architecture.x86_64),
("x86_64", Architecture.x86_64),
("linux", "armv8l", Architecture.aarch64),
("linux", "aarch64", Architecture.aarch64),
("linux", "ppc64le", Architecture.ppc64le),
("linux", "i686", Architecture.x86_64),
("linux", "x86_64", Architecture.x86_64),
("darwin", "arm64", Architecture.aarch64),
("darwin", "x86_64", Architecture.x86_64),
("win32", "ARM64", Architecture.aarch64),
("win32", "AMD64", Architecture.x86_64),
],
)
def test_64bits_arch_name(reported_arch, expected_arch, monkeypatch):
def test_64bits_arch_name(sys_platform, reported_arch, expected_arch, monkeypatch):
monkeypatch.setattr(sys, "platform", sys_platform)
monkeypatch.setattr(platform, "machine", lambda: reported_arch)
machine = Architecture.get_native_architecture(bits=64)
assert machine == expected_arch
Expand Down
44 changes: 44 additions & 0 deletions tests/unit/test_json.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from dataclasses import dataclass
from enum import Enum
from json import loads

import pytest

from auditwheel.json import dumps


def test_dataclass():

@dataclass(frozen=True)
class Dummy:
first: str = "val0"
second: int = 2

assert {"first": "val0", "second": 2} == loads(dumps(Dummy()))


def test_enum():

class Dummy(Enum):
value: str

TEST = "dummy"

def __repr__(self):
return self.value

assert Dummy.TEST.value == loads(dumps(Dummy.TEST))


def test_frozenset():
obj = frozenset((3, 9, 6, 5, 21))
data = loads(dumps(obj))
assert data == sorted(obj)


def test_invalid_type():

class Dummy:
pass
with pytest.raises(TypeError):
dumps(Dummy())

0 comments on commit 1828679

Please sign in to comment.