Skip to content

Commit

Permalink
test: Move more class definitions tests to separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
igo95862 committed Nov 5, 2023
1 parent dcf0bf0 commit b90a5a3
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 62 deletions.
1 change: 0 additions & 1 deletion test/leak_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ async def test_objects(self) -> None:
await TestProxy.test_method_kwargs(pseudo_test)
await TestProxy.test_method(pseudo_test)
await TestProxy.test_subclass(pseudo_test)
await TestProxy.test_bad_subclass(pseudo_test)
await TestProxy.test_properties(pseudo_test)
await TestProxy.test_signal(pseudo_test)
await TestProxy.test_exceptions(pseudo_test)
Expand Down
60 changes: 0 additions & 60 deletions test/test_sdbus_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
from typing import Tuple, cast
from unittest import SkipTest

from sdbus.dbus_common_funcs import PROPERTY_FLAGS_MASK, count_bits
from sdbus.dbus_proxy_async_interfaces import DBUS_PROPERTIES_CHANGED_TYPING
from sdbus.exceptions import (
DbusFailedError,
Expand All @@ -37,8 +36,6 @@
)
from sdbus.sd_bus_internals import (
DBUS_ERROR_TO_EXCEPTION,
DbusDeprecatedFlag,
DbusPropertyConstFlag,
DbusPropertyEmitsChangeFlag,
)
from sdbus.unittest import IsolatedDbusTestCase
Expand Down Expand Up @@ -384,18 +381,6 @@ def test_property(self) -> str:
self.assertEqual(
await test_subclass_tri_connection.test_property, 'tri')

async def test_bad_subclass(self) -> None:
with self.assertRaises(TypeError):
class TestInheritence(TestInterface):
async def test_int(self) -> int:
return 2

with self.assertRaises(TypeError):
class TestInheritence2(TestInterface):
@dbus_method_async_override()
async def test_unrelated(self) -> int:
return 2

async def test_properties(self) -> None:
test_object, test_object_connection = initialize_object()

Expand Down Expand Up @@ -661,51 +646,6 @@ async def catch_property_emit_local() -> str:
self.assertEqual(t1_result, test_str)
self.assertEqual(t2_result, test_str)

async def test_property_flags(self) -> None:
self.assertEqual(0, PROPERTY_FLAGS_MASK & DbusDeprecatedFlag)
self.assertEqual(
1,
count_bits(PROPERTY_FLAGS_MASK & (DbusDeprecatedFlag
| DbusPropertyEmitsChangeFlag))
)
self.assertEqual(
2,
count_bits(
PROPERTY_FLAGS_MASK & (
DbusDeprecatedFlag |
DbusPropertyConstFlag |
DbusPropertyEmitsChangeFlag)))

def must_raise_value_error() -> None:
class InvalidPropertiesFlags(
DbusInterfaceCommonAsync,
interface_name='org.test.test'):
@dbus_property_async(
"s",
flags=DbusPropertyConstFlag | DbusPropertyEmitsChangeFlag,
)
def test_constant(self) -> str:
return "a"

self.assertRaisesRegex(
AssertionError,
'^Incorrect number of Property flags',
must_raise_value_error,
)

def should_be_no_error() -> None:
class ValidPropertiesFlags(
DbusInterfaceCommonAsync,
interface_name='org.test.test'):
@dbus_property_async(
"s",
flags=DbusDeprecatedFlag | DbusPropertyEmitsChangeFlag,
)
def test_constant(self) -> str:
return "a"

should_be_no_error()

async def test_bus_close(self) -> None:
test_object, test_object_connection = initialize_object()

Expand Down
77 changes: 76 additions & 1 deletion test/test_sdbus_async_bad_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,26 @@
from unittest import TestCase
from unittest import main as unittest_main

from sdbus.dbus_common_funcs import PROPERTY_FLAGS_MASK, count_bits

from sdbus import (
DbusDeprecatedFlag,
DbusInterfaceCommonAsync,
DbusPropertyConstFlag,
DbusPropertyEmitsChangeFlag,
dbus_method_async,
dbus_method_async_override,
dbus_property_async,
dbus_signal_async,
)

from .common_test_util import skip_if_no_name_validations
from .common_test_util import skip_if_no_asserts, skip_if_no_name_validations


class TestInterface(DbusInterfaceCommonAsync):
@dbus_method_async(result_signature="i")
async def test_int(self) -> int:
return 1


class TestBadAsyncDbusClass(TestCase):
Expand Down Expand Up @@ -95,6 +107,69 @@ class BadSignalName(
def test(self) -> str:
raise NotImplementedError

def test_property_flags(self) -> None:
self.assertEqual(0, PROPERTY_FLAGS_MASK & DbusDeprecatedFlag)
self.assertEqual(
1,
count_bits(
PROPERTY_FLAGS_MASK
& (DbusDeprecatedFlag | DbusPropertyEmitsChangeFlag)
),
)
self.assertEqual(
2,
count_bits(
PROPERTY_FLAGS_MASK
& (
DbusDeprecatedFlag
| DbusPropertyConstFlag
| DbusPropertyEmitsChangeFlag
)
),
)

with self.subTest("Test incorrect flags"), self.assertRaisesRegex(
AssertionError,
"^Incorrect number of Property flags",
):
skip_if_no_asserts()

class InvalidPropertiesFlags(
DbusInterfaceCommonAsync, interface_name="org.test.test"
):
@dbus_property_async(
"s",
flags=DbusPropertyConstFlag | DbusPropertyEmitsChangeFlag,
)
def test_constant(self) -> str:
return "a"

with self.subTest("Valid properties flags"):

class ValidPropertiesFlags(
DbusInterfaceCommonAsync, interface_name="org.test.test"
):
@dbus_property_async(
"s",
flags=DbusDeprecatedFlag | DbusPropertyEmitsChangeFlag,
)
def test_constant(self) -> str:
return "a"

def test_bad_subclass(self) -> None:
with self.assertRaises(TypeError):

class TestInheritence(TestInterface):
async def test_int(self) -> int:
return 2

with self.assertRaises(TypeError):

class TestInheritence2(TestInterface):
@dbus_method_async_override()
async def test_unrelated(self) -> int:
return 2


if __name__ == "__main__":
unittest_main()

0 comments on commit b90a5a3

Please sign in to comment.