50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
import importlib
|
|
import inspect
|
|
import unittest
|
|
|
|
|
|
class TestLazyBinding(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.binding = importlib.import_module("dragiyski.vulkan.binding")
|
|
|
|
def assert_callable_macro(self, name: str, params: list[str]):
|
|
self.assertTrue(hasattr(self.binding, name))
|
|
macro = getattr(self.binding, name)
|
|
self.assertTrue(callable(macro))
|
|
sig = inspect.signature(macro)
|
|
self.assertEqual(list(sig.parameters.keys()), params)
|
|
for param in sig.parameters.values():
|
|
self.assertEqual(param.kind, inspect.Parameter.POSITIONAL_OR_KEYWORD)
|
|
|
|
def test_define_vk_make_version(self):
|
|
self.assert_callable_macro('VK_MAKE_VERSION', ['major', 'minor', 'patch'])
|
|
|
|
def test_define_vk_version_major(self):
|
|
self.assert_callable_macro('VK_VERSION_MAJOR', ['version'])
|
|
|
|
def test_define_vk_version_minor(self):
|
|
self.assert_callable_macro('VK_VERSION_MINOR', ['version'])
|
|
|
|
def test_define_vk_version_patch(self):
|
|
self.assert_callable_macro('VK_VERSION_PATCH', ['version'])
|
|
|
|
def test_define_vk_make_api_version(self):
|
|
self.assert_callable_macro('VK_MAKE_API_VERSION', ['variant', 'major', 'minor', 'patch'])
|
|
|
|
def test_define_vk_api_version_variant(self):
|
|
self.assert_callable_macro('VK_API_VERSION_VARIANT', ['version'])
|
|
|
|
def test_define_vk_api_version_major(self):
|
|
self.assert_callable_macro('VK_API_VERSION_MAJOR', ['version'])
|
|
|
|
def test_define_vk_api_version_minor(self):
|
|
self.assert_callable_macro('VK_API_VERSION_MINOR', ['version'])
|
|
|
|
def test_define_vk_api_version_patch(self):
|
|
self.assert_callable_macro('VK_API_VERSION_PATCH', ['version'])
|
|
|
|
def test_define_vk_header_version(self):
|
|
self.assertTrue(hasattr(self.binding, 'VK_HEADER_VERSION'))
|
|
self.assertIsInstance(self.binding.VK_HEADER_VERSION, int)
|