Skip to content

Commit 326b189

Browse files
committed
Test effect
1 parent ebedc2d commit 326b189

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

demosys/context/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ def __init__(self):
4545
# ModernGL context
4646
self.ctx = None
4747

48+
@property
49+
def size(self):
50+
return (self.width, self.height)
51+
4852
def draw(self, current_time, frame_time):
4953
self.set_default_viewport()
5054
self.manager.draw(current_time, frame_time, self.fbo)

tests/effect.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from demosys.effects import Effect
2+
3+
4+
class TestEffect(Effect):
5+
6+
def __init__(self):
7+
pass
8+
9+
def draw(self, time, frametime, target):
10+
pass

tests/test_effect.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from demosys.test import DemosysTestCase
2+
from demosys.effects.registry import effects
3+
from demosys.effects import Effect
4+
from demosys.scene import camera
5+
6+
7+
class EffectTestCase(DemosysTestCase):
8+
9+
def setUp(self):
10+
Effect._ctx = self.ctx
11+
Effect._window_width = self.window.width
12+
Effect._window_height = self.window.height
13+
Effect._window_aspect = self.window.width / self.window.height
14+
Effect._sys_camera = camera.SystemCamera()
15+
16+
effects.polulate(['tests'])
17+
self.effect = effects.effects.get('tests.effect').cls()
18+
19+
def test_properties(self):
20+
self.assertEqual(self.effect.name, 'tests')
21+
self.assertEqual(self.effect.window_width, self.window.width)
22+
self.assertEqual(self.effect.window_height, self.window.height)
23+
self.assertEqual(self.effect.window_size, self.window.size)
24+
self.assertEqual(self.effect.window_aspect, self.window.width / self.window.height)
25+
self.assertEqual(self.effect.ctx, self.ctx)
26+
self.assertIsInstance(self.effect.sys_camera, camera.SystemCamera)
27+
self.assertEqual(self.effect.effect_name, 'tests')
28+
29+
def test_methods(self):
30+
self.effect.post_load()
31+
self.effect.draw(0, 0, None)
32+
33+
def test_resources(self):
34+
self.assertIsNotNone(self.effect.get_shader('vf_pos.glsl'))
35+
self.assertIsNotNone(self.effect.get_texture('crate.jpg'))
36+
self.assertIsNotNone(self.effect.get_scene('BoxTextured/glTF/BoxTextured.gltf'))
37+
self.assertIsNotNone(self.effect.get_data('data.txt', mode="text"))
38+
39+
def test_misc_methods(self):
40+
self.effect.create_projection()
41+
self.effect.create_transformation()

0 commit comments

Comments
 (0)