Skip to content

Commit

Permalink
Initial code for testing, WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
diara628 committed Jul 26, 2010
1 parent 2ec1bad commit 10bc847
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
30 changes: 30 additions & 0 deletions openscad_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import py, re

mod_re = (r"\bmodule\s+(", r")\s*\(\s*")
func_re = (r"\bfunction\s+(", r")\s*\(")

def extract_mod_names(fpath, name_re=r"\w+"):
regex = name_re.join(mod_re)
print regex
matcher = re.compile(regex)
return (m.group(1) for m in matcher.finditer(fpath.read()))

def extract_func_names(fpath, name_re=r"\w+"):
regex = name_re.join(func_re)
print regex
matcher = re.compile(regex)
return (m.group(1) for m in matcher.finditer(fpath.read()))

def collect_test_modules():
dirpath = py.path.local("./")
print "Collecting openscad test module names"

test_files = {}
for fpath in dirpath.visit('*.scad'):
#print fpath
modules = extract_mod_names(fpath, r"test\w*")
#functions = extract_func_names(fpath, r"test\w*")
test_files[fpath] = modules
return test_files

collect_test_modules()
14 changes: 14 additions & 0 deletions test_compile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from openscad_utils import *

def pytest_generate_tests(metafunc):
if "mod_name" in metafunc.funcargnames:
for fpath, mod_names in collect_test_modules().items():
for mod_name in mod_names:
metafunc.addcall(funcargs=dict(mod_name=mod_name, mod_file=fpath))

temppath = py.test.ensuretemp('MCAD')

def test_func(mod_name, mod_file, capfd):
fpath = temppath.join(mod_file.base_name)

call_openscad(path=fpath)

0 comments on commit 10bc847

Please sign in to comment.