forked from hlorus/CAD_Sketcher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
59 lines (44 loc) · 1.45 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from unittest import TestCase
class BgsTestCase(TestCase):
interactive = False
log_level = "INFO"
@classmethod
def setUpClass(cls):
from CAD_Sketcher.utilities.preferences import get_prefs
prefs = get_prefs()
prefs.logging_level = cls.log_level
import bpy
# Create new scene for tests
cls.scene = bpy.data.scenes.new(cls.__name__)
bpy.context.window.scene = cls.scene
cls.ops = bpy.ops
cls.data = bpy.data
cls.context = bpy.context
cls.sketcher = cls.context.scene.sketcher
cls.entities = cls.sketcher.entities
cls.constraints = cls.sketcher.constraints
@classmethod
def tearDownClass(cls):
if cls.interactive:
return
# Delete scene
context = cls.context
data = cls.data
data.scenes.remove(cls.scene)
@staticmethod
def force_entity_update(scene):
for entity in scene.sketcher.entities.all:
entity.update()
class Sketch2dTestCase(BgsTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.entities.ensure_origin_elements(cls.context)
wp = cls.entities.origin_plane_XY
cls.sketch = cls.entities.add_sketch(wp)
@classmethod
def tearDownClass(cls):
super().tearDownClass()
if cls.interactive:
return
cls.ops.view3d.slvs_delete_entity(index=cls.sketch.slvs_index)