annotate autobot/projects/__init__.py @ 71:a1568668175c

make the autobot project possibly do something
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 11 Jan 2011 14:00:01 -0800
parents f8dccf3377d9
children a14d466c843b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
1 """
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
2 projects that need some testing:
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
3
70
f8dccf3377d9 update documentation
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
4 * logparser [WORKING]
f8dccf3377d9 update documentation
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
5 * mozmill [IN FLIGHT]
f8dccf3377d9 update documentation
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
6 * devicemanager [IN FLIGHT]
f8dccf3377d9 update documentation
Jeff Hammel <jhammel@mozilla.com>
parents: 59
diff changeset
7 * profilemanager [IN FLIGHT]
29
0f3737cfa0fc format docstring
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
8 * firebug [TODO]
0f3737cfa0fc format docstring
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
9 * jetpack thing [TODO]
32
5b08b98897c6 autobot, test thyself
Jeff Hammel <jhammel@mozilla.com>
parents: 31
diff changeset
10 * autobot [TODO]
28
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
11 """
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
12
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
13 import imp
28
5ce65c535472 add a docstring and other stubs to projects
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
14 import os
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
15 from buildbot.process.factory import BuildFactory
10
9bda5ada5dca start on a dict of projects
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
16 from logparser import TestLogParserFactory
31
7a33d84b38e5 add mozmill to the dictionary of factories
Jeff Hammel <jhammel@mozilla.com>
parents: 29
diff changeset
17 from mozmill import TestMozmillFactory
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
18
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
19 # available factories::
71
a1568668175c make the autobot project possibly do something
Jeff Hammel <jhammel@mozilla.com>
parents: 70
diff changeset
20 # import these automagically; requires non-zipped eggs
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
21 factories = {}
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
22 descriptions = {}
34
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
23 here = os.path.dirname(os.path.abspath(__file__))
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
24 packages = [os.path.join(here, path)
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
25 for path in os.listdir(here)
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
26 if os.path.isdir(os.path.join(here, path))]
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
27 packages = [os.path.basename(package) for package in packages
34
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
28 if os.path.exists(os.path.join(package, '__init__.py'))]
59
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
29 for package in packages:
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
30 try:
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
31 module = imp.load_package('autobot.projects.'+package, imp.find_module(package, [here])[1])
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
32 except:
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
33 continue
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
34 for attr in dir(module):
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
35 try:
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
36 _obj = getattr(module, attr)
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
37 if issubclass(_obj, BuildFactory) and _obj.__module__.startswith('autobot.projects.'):
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
38 factories[package] = _obj
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
39 descriptions[package] = (getattr(_obj, '__doc__', attr) or attr).strip()
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
40 except TypeError:
e66165f2f31b complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
41 continue
10
9bda5ada5dca start on a dict of projects
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
42