Skip to content

Commit

Permalink
Add test harness
Browse files Browse the repository at this point in the history
  • Loading branch information
mottosso committed Sep 21, 2016
1 parent 8670811 commit c73df53
Show file tree
Hide file tree
Showing 10 changed files with 81 additions and 12 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
cover
.coverage
examples/maya/private**
examples/maya/public**
9 changes: 9 additions & 0 deletions .noserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[nosetests]
verbosity=2
with-doctest=1
with-coverage=1
exclude=vendor
cover-html=1
cover-erase=1
cover-tests=1
cover-package=pyblish_starter
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ $ pip install pyblish-starter

### Usage

Starter is initialised by calling `setup()`.
Starter is initialised by calling `install()`.

```python
>>> import pyblish_starter
>>> pyblish_starter.setup()
>>> pyblish_starter.install()
```

From here, you model, rig and animate as per the contract below.
Expand Down
11 changes: 9 additions & 2 deletions pyblish_starter/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
from .pipeline import (
ls,
setup,
install,
register_root,
register_loader,
register_creator,
register_plugins,
format_private_dir,
)


__all__ = [
"ls",
"setup",
"install",
"register_plugins",
"register_root",
"register_loader",
"register_creator",
"format_private_dir",
]
2 changes: 1 addition & 1 deletion pyblish_starter/maya/pythonpath/userSetup.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import pyblish_starter
pyblish_starter.setup()
pyblish_starter.install()
8 changes: 4 additions & 4 deletions pyblish_starter/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
self._log = logging.getLogger()


def setup(root, loader, creator):
"""Setup the running Python session.
def install(root, loader, creator):
"""install the running Python session.
Arguments:
root (str): Absolute path to assets
Expand Down Expand Up @@ -55,9 +55,9 @@ def setup(root, loader, creator):
)


def ls(root):
def ls():
"""List available assets"""
dirname = os.path.join(root, "public")
dirname = os.path.join(self.registered_root(), "public")
self._log.debug("Listing %s" % dirname)
return os.listdir(dirname)

Expand Down
4 changes: 2 additions & 2 deletions pyblish_starter/plugins/collect_instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ def process(self, context):

try:
import pyblish_maya
assert pyblish_maya.is_setup()
assert pyblish_maya.is_install()

except (ImportError, AssertionError):
raise RuntimeError("pyblish-starter requires pyblish-maya "
"to have been setup.")
"to have been install.")

for objset in cmds.ls("*.id",
long=True, # Produce full names
Expand Down
33 changes: 33 additions & 0 deletions pyblish_starter/tests/test_pipeline.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import os
import sys
import shutil
import tempfile

import pyblish_starter

self = sys.modules[__name__]


def setup():
self.tempdir = tempfile.mkdtemp()
sys.stdout.write("Created temporary directory \"%s\"" % self.tempdir)


def teardown():
shutil.rmtree(self.tempdir)
sys.stdout.write("Removed temporary directory \"%s\"" % self.tempdir)


def test_ls():
"""ls() returns available assets from current root directory"""
root = os.path.join(
self.tempdir,
"public"
)

for asset in ("Asset1", "Asset2"):
os.makedirs(os.path.join(root, asset))

pyblish_starter.register_root(self.tempdir)

assert pyblish_starter.ls() == ["Asset1", "Asset2"]
2 changes: 1 addition & 1 deletion pyblish_starter/tools/instance_creator/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def show(creator=None, debug=False):
if creator is None:
raise ValueError("No creator registered.\n"
"A creator must be either registered in "
"pyblish_starter.setup(creator=) or "
"pyblish_starter.install(creator=) or "
"passed to show(creator=).")

if debug:
Expand Down
18 changes: 18 additions & 0 deletions run_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sys
import time
import types

maya = types.ModuleType("maya")
maya.mel = types.ModuleType("mel")
maya.cmds = types.ModuleType("cmds")

maya.cmds.ls = lambda *args, **kwargs: ["pCube1"]
maya.mel.eval = lambda string: None

sys.modules["maya"] = maya

if __name__ == '__main__':
import nose
argv = sys.argv[:]
argv.extend(['-c', '.noserc'])
nose.main(argv=argv)

0 comments on commit c73df53

Please sign in to comment.