See <https://builds.apache.org/job/Allura/968/changes>
Changes: [dave] [#7919] Add stylesheet for the admin navbar [dave] [#7919] Refactor _nav endpoint to use json_nav on the project model [dave] [#7919] Add rest endpoints for NavBar grouping and reordering [dave] [#7919] Extend json_nav to include additional navbar attributes [dave] [#7919] Add markup to support the NavBar [dave] [#7919] Add the "tools" endpoint to the api documentation [dave] [#7919] Add the navbar front-end logic [dave] [#7919] Add NavBar dependencies [dave] [#7920] Add configured jshint and jscs [dave] [#7920] Format navbar to pass eslint inspection [dave] [#7920] Fix import error [dave] [#7920] Fix routing conflict for tools api endpoint [dave] [#7919] Add additional fields to the rest api [dave] [#7919] Fix endpoint to show installable tools for a given project [dave] [#7919] Add div to attach the "Add new tool" menu [dave] [#7919] Add styles for the "add new tool" menu [dave] [#7919] Add "Add new tool" feature [dave] [#7919] Add react for development mode [dave] [#7919] Fix style issues with "Add New Tool" menu [dave] [#7919] separate mount point vs name (aka label). Fix warnings [dave] [#7919] Integrate 'Add new tool' menu with admin toolbar [dave] [#7919] Add tool_label to installable_tools rest endpoint [dave] [#7919] Merged with Dave's refactor/enhancments [dave] [#7919] Add cache for installable tools [dave] [#7919] improve the tool descriptions, set missing ones [dave] [#7919] use minified react in non-development situations [dave] [#7919] Make _nav.json's keys backwards compatible [dave] [#7919] Update stylesheet to support new component markup [dave] [#7919] Split the "add new tool" components into another file [dave] [#7919] Remove unneeded components and refactor submenus [dave] [#7919] Update stylesheet to support new component markup [dave] [#7919] first step in better injecting of the react nav bar [dave] [#7919] Refactor and reduce toolbar css [dave] [#7919] Make edit-mode sub-menus display correctly [dave] [#7919] Reorder css options to make it easier to read [dave] [#7919] Fix missing keys from toolbar components [dave] [#7919] Update to React v0.14.1 [dave] [#7919] dedicated broccoli build for navbar.js (cherry picked from [dave] [#7919] Fix toolbar reorder bug that prevented drag/dop from working [dave] [#7919] Add top-level toggle for 'add-new-tool' menu [dave] [#7919] delay menu takeover until first unlock; clean up [dave] [#7919] remove extraneous fa class [dave] [#7919] Update "react reorderable" to support react v0.14 [dave] [#7919] Fix toolbar reorder bug [dave] [#7919] Add New display improvements [dave] [#7919] fix <li> nesting issue (<li> is the container in top_nav.html [dave] [#7919] fix some tests [dave] [#7919] make tests more robust (particularly, running various [dave] [#7919] make _getProjectUrl and needed AJAX urls work for nbhd-projects [dave] [#7919] unify _lookup for regular nbhd controller and rest controller [dave] [#7919] Fix edit-mode submenu display [dave] [#7919] Unify toolbar and submenu ordinals [dave] [#7919] Fix key errors from child components [dave] [#7919] Fix css issue that prevents submenu from displaying [dave] [#7919] Fix z-index bug in toolbar css [dave] [#7919] Fix proptype warning messages [dave] [#7919] start OptionsMenu (cherry picked from commit 839c1c1) [dave] [#7919] Add tool options api and react component [dave] [#7919] Only show the gear icon if tool options exist [dave] [#7919] Make submenu cog icons display correctly [dave] [#7919] Add 'is_modal' to admin_option endpoint [dave] [#7919] Style fixes for the Tool option 'context menu' [dave] [#7919] avoid possible unicode format error; don't need project name [dave] [#7919] only show grouping threshold when applicable (cherry picked from [dave] [#7919] more clearly separate anchored and grouped functions [dave] [#7919] no right border on last item; consistent left margin on whole [dave] [#7919] Fix bug that caused duplicate items in reorderable tool list [dave] [#7919] style and position optionMenu better [dave] [#7919] option menu hover logic [dave] [#7919] preload all admin options, instead of fetching with ajax [dave] [#7919] only need draggable-handle-[sub] on the span [dave] [#7919] include JS in the right spots, use same react files everywhere [dave] [#7919] update LICENSE files, rat-excludes.txt and add license headers [dave] [#7919] only use .min. versions of react-drag and react-reorderable.js [dave] [#7919] include admin options when getting nav data; restore getNavJson [dave] [#7919] Make new tool mount_point validation a react prop instead of an [dave] [#7919] react-reorderable's "list" mode gives better drag zone [dave] [#7919] Add new tool style updates [dave] [#7919] Add form field for external url in the 'add-new-tool' menu [dave] [#7919] make active-drag box fix its container dimensions just right, [dave] [#7919] balance right & left paddings around each tool item [dave] [#7919] show possible range for reordering tools [dave] [#7919] get instead of post, which was causing CSRF validation issues [dave] [#7919] Make mount_point validate locally when adding a new tool [dave] [#7919] Use css to set tool colors [dave] [#7919] Add subproject to the "add new tool" menu [dave] [#7919] Make validation reset on tool change [dave] [#7919] Alternate 'add-tool' layout [dave] [#7919] Redirect to new tool's page after creation [dave] [#7919] Add generic react tooltipster wrapper. [dave] [#7919] Clean up add-new-tool components. [dave] [#7919] Add react tooltipster wrapper [dave] [#7919] Make add-new-tool menu use ContextMenu component [dave] [#7919] Update brocfile to exclude add-new-tool js [dave] [#7919] Admin modals from the top nav options menu [dave] [#7919] move our single admin_modal to top_nav (not all pages have the [dave] [#7919] remove sidebar & admin widgets support [dave] [#7919] remove AdminModal widget, change to pure JS [dave] [#7919] Merge commit [dave] [#7919] Fix overflow display issue for context menu [dave] [#7919] Remove unneeded class from context menu [dave] [#7919] fixing LICENSE: restore to master [dave] [#7919] reapply 4923bba and a583566, manually [dave] [#7919] show Delete in nav bar option menus; use regular admin_modal for [dave] [#7919] don't support subproject deletion from parent project, only [dave] [#7919] remove a float:left that's actually causing problems [dave] [#7919] Move add-new-tool modals into the nav bar [dave] [#7919] enable support for transform-class-properties [dave] [#7919] safer babel 5 option [dave] [#7919] move getNavJson into success handler of threshold update. [dave] [#7919] Add missing proptypes to navbar components [dave] [#7919] Pass mount_point validation data into the initial toolbar [dave] [#7919] remove double-slash, which doesn't resolve with gunicorn [dave] [#7919] left-align submenus in edit mode [dave] [#7919] remove unused tb-sub-menu class rules [dave] [#7919] restore drag zone background change, lost in a previous [dave] [#7919] Make validation patterns accessible to javascript for frontend [dave] [#7919] Add frontend validation to the add-tool form [dave] [#7919] remove unused bits of code [dave] [#7919] add tooltipster to navbar.js output file; Explicitly list es6.js [dave] [#7919] Set maxlength for input fields [dave] [#7919] add tooltip for grouping threshold; refactor tooltip some [dave] [#7919] anchored tools: remove not-allowed cursor, add tooltip [dave] [#7919] tooltip on initial lock icon; removing blue hover that [dave] [#7919] fix className in ContextMenu, so admin modals work again [dave] [#7919] new tools/subprojects to get proper last ordinal value [dave] [#7919] navbar.css should come after theme CSS; make Add Tool not make [dave] [#7919] Fix float issues with context menu [dave] [#7919] clean up existingTools validation variables [dave] [#7919] make subproject install defaults show up [dave] [#7919] show Add Tool button in unlocked mode too. Its menu needs some [dave] [#7919] change tests from options_on_install page to install_tool page; [dave] [7919] Redirect to new tool after it is created [dave] [#7919] Fix styling issues on Add Tool dropdown [dave] [#7919] include babel's polyfill for IE [dave] Add Tool button should only be after top-level tools, not in submenus [dave] [#7919] upgrade react to 0.14.3, fixes an IE click issue [dave] [#7919] API docs for new endpoints; minor fix for webhooks [dave] [#7919] Make the add tool context menu have a consistent style [dave] [#7919] Add tests for new endpoints [dave] [#7919] tests for _nav.json?admin_options=1 [dave] [#8034] send project_menu_updated events [dave] [#7919] handle redirecting to subproject; don't redirect to external [dave] [#7919] add license headers [dave] [#7919] revert unneeded changes, compared to master [dave] [#7919] minor fix of existing moved code [dave] [#7919] don't need to check length since we specify maxlength; > 61 was [dave] [#7919] remove unused bits of code [dave] [#7919] fix tests [dave] [#7919] prevent Options & Labels from ending up on the same line (at [dave] [#7919] quote jquery attr lookup so it doesn't error on mount points [dave] [#7919] link to new Tools page describing moved functionality; keep old [dave] [#7919] add helpful messages if transpiled.js isn't there ------------------------------------------ [...truncated 1908 lines...] self.setUp() File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 381, in setUp try_run(self.inst, ('setup', 'setUp')) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/util.py",> line 470, in try_run return func() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/test_root_controller.py",> line 44, in setUp super(TestWhenSearchingWithCustomFields, self).setUp() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/test_root_controller.py",> line 36, in setUp super(WithUserAndBugsApp, self).setUp() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/__init__.py",> line 43, in setUp project_reg.register_neighborhood_project(neighborhood, [c.user]) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/plugin.py",> line 777, in register_neighborhood_project ('admin', 'admin', 'Admin')]) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/project.py",> line 1024, in configure_project self.install_app(ep_name, mount_point, label, ordinal=i) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/project.py",> line 828, in install_app app.install(self) File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/wiki_main.py",> line 322, in install self.upsert_root(root_page_name) File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/wiki_main.py",> line 332, in upsert_root p.commit() File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/model/wiki.py",> line 156, in commit Feed.post(self, title=None, description=description) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/artifact.py",> line 859, in post description=g.markdown.convert(description), File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/app_globals.py",> line 81, in convert return markdown.Markdown.convert(self, source) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/__init__.py",> line 292, in convert newRoot = treeprocessor.run(root) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 289, in run text), child) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 110, in __handleInline data, patternIndex, startIndex) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 237, in __applyPattern node = pattern.handleMatch(match) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/markdown_extensions.py",> line 385, in handleMatch html = self.macro(m.group(2)) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 77, in __call__ ''.join(traceback.format_stack()), Traceback (most recent call last): File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 73, in __call__ response = macro(**h.encode_keys(args)) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 442, in members g.resource_manager.register(users) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 137, in __getattr__ return getattr(self._current_obj(), attr) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/app_globals.py",> line 513, in resource_manager return ew_core.widget_context.resource_manager File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 137, in __getattr__ return getattr(self._current_obj(), attr) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 197, in _current_obj 'thread' % self.____name__) TypeError: No object (name: widget_context) has been registered for this thread allura.model.notification: DEBUG: Notifications disabled for project --init--, not sending metadata(<Page import_id=None labels=I[] title=u'Home' deleted=False text='Welcome to your wiki!\n\nThis is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].\n\nThe wiki uses [Markdown](/p/wiki/markdown_syntax/) syntax.\n\n[[members limit=20]]\n' text_cache=I{'render_time': None, 'html': None, 'fix7528': <Missing>, 'md5': None} version=1 mod_date=datetime.datetime(2016, 1, 8, 19, 41, 29, 773644) viewable_by=I['all'] _id=ObjectId('569010e9fe6bb347c16099d3') app_config_id=ObjectId('569010e9fe6bb347c16099cc') acl=I[]>) allura.model.artifact: DEBUG: Snapshot version 1 of <class 'forgetracker.model.ticket.Ticket'> --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: forgetracker.tests.unit.test_root_controller.TestWhenSearchingWithCustomFields.test_that_tickets_are_listed ---------------------------------------------------------------------- Traceback (most recent call last): File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 381, in setUp try_run(self.inst, ('setup', 'setUp')) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/util.py",> line 470, in try_run return func() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/test_root_controller.py",> line 46, in setUp self.response = tracker_main.RootController().search(q='friends') File "<string>", line 2, in search File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/patches.py",> line 86, in with_trailing_slash response_type = getattr(request, 'response_type', None) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 137, in __getattr__ return getattr(self._current_obj(), attr) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 197, in _current_obj 'thread' % self.____name__) TypeError: No object (name: request) has been registered for this thread -------------------- >> begin captured logging << -------------------- allura.model.artifact: DEBUG: Snapshot version 1 of <class 'forgewiki.model.wiki.Page'> allura.lib.macro: WARNING: macro error. Upwards stack is File "<https://builds.apache.org/job/Allura/ws/.allura-venv/bin/nosetests",> line 8, in <module> load_entry_point('nose==1.3.4', 'console_scripts', 'nosetests')() File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/core.py",> line 121, in __init__ **extra_args) File "/usr/lib/python2.7/unittest/main.py", line 95, in __init__ self.runTests() File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/core.py",> line 207, in runTests result = self.testRunner.run(self.test) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 380, in run p = self.startProcess(i, testQueue, resultQueue, shouldStop, result) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 343, in startProcess p.start() File "/usr/lib/python2.7/multiprocessing/process.py", line 130, in start self._popen = Popen(self) File "/usr/lib/python2.7/multiprocessing/forking.py", line 126, in __init__ code = process_obj._bootstrap() File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 652, in runner keyboardCaught, shouldStop, loaderClass, resultClass, config) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 715, in __runner test(result) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/suite.py",> line 177, in __call__ return self.run(*arg, **kw) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 812, in run test(orig) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/suite.py",> line 177, in __call__ return self.run(*arg, **kw) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 812, in run test(orig) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/suite.py",> line 177, in __call__ return self.run(*arg, **kw) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 812, in run test(orig) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/suite.py",> line 177, in __call__ return self.run(*arg, **kw) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",> line 812, in run test(orig) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 45, in __call__ return self.run(*arg, **kwarg) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 133, in run self.runTest(result) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 151, in runTest test(result) File "/usr/lib/python2.7/unittest/case.py", line 395, in __call__ return self.run(*args, **kwds) File "/usr/lib/python2.7/unittest/case.py", line 322, in run self.setUp() File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/case.py",> line 381, in setUp try_run(self.inst, ('setup', 'setUp')) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/nose/util.py",> line 470, in try_run return func() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/test_root_controller.py",> line 44, in setUp super(TestWhenSearchingWithCustomFields, self).setUp() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/test_root_controller.py",> line 36, in setUp super(WithUserAndBugsApp, self).setUp() File "<https://builds.apache.org/job/Allura/ws/ForgeTracker/forgetracker/tests/unit/__init__.py",> line 43, in setUp project_reg.register_neighborhood_project(neighborhood, [c.user]) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/plugin.py",> line 777, in register_neighborhood_project ('admin', 'admin', 'Admin')]) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/project.py",> line 1024, in configure_project self.install_app(ep_name, mount_point, label, ordinal=i) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/project.py",> line 828, in install_app app.install(self) File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/wiki_main.py",> line 322, in install self.upsert_root(root_page_name) File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/wiki_main.py",> line 332, in upsert_root p.commit() File "<https://builds.apache.org/job/Allura/ws/ForgeWiki/forgewiki/model/wiki.py",> line 156, in commit Feed.post(self, title=None, description=description) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/model/artifact.py",> line 859, in post description=g.markdown.convert(description), File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/app_globals.py",> line 81, in convert return markdown.Markdown.convert(self, source) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/__init__.py",> line 292, in convert newRoot = treeprocessor.run(root) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 289, in run text), child) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 110, in __handleInline data, patternIndex, startIndex) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/markdown/treeprocessors.py",> line 237, in __applyPattern node = pattern.handleMatch(match) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/markdown_extensions.py",> line 385, in handleMatch html = self.macro(m.group(2)) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 77, in __call__ ''.join(traceback.format_stack()), Traceback (most recent call last): File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 73, in __call__ response = macro(**h.encode_keys(args)) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/macro.py",> line 442, in members g.resource_manager.register(users) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 137, in __getattr__ return getattr(self._current_obj(), attr) File "<https://builds.apache.org/job/Allura/ws/Allura/allura/lib/app_globals.py",> line 513, in resource_manager return ew_core.widget_context.resource_manager File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 137, in __getattr__ return getattr(self._current_obj(), attr) File "<https://builds.apache.org/job/Allura/ws/.allura-venv/local/lib/python2.7/site-packages/paste/registry.py",> line 197, in _current_obj 'thread' % self.____name__) TypeError: No object (name: widget_context) has been registered for this thread allura.model.notification: DEBUG: Notifications disabled for project --init--, not sending metadata(<Page import_id=None labels=I[] title=u'Home' deleted=False text='Welcome to your wiki!\n\nThis is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].\n\nThe wiki uses [Markdown](/p/wiki/markdown_syntax/) syntax.\n\n[[members limit=20]]\n' text_cache=I{'render_time': None, 'html': None, 'fix7528': <Missing>, 'md5': None} version=1 mod_date=datetime.datetime(2016, 1, 8, 19, 41, 29, 964282) viewable_by=I['all'] _id=ObjectId('569010e9fe6bb347c1609a20') app_config_id=ObjectId('569010e9fe6bb347c1609a19') acl=I[]>) allura.model.artifact: DEBUG: Snapshot version 1 of <class 'forgetracker.model.ticket.Ticket'> --------------------- >> end captured logging << --------------------- ---------------------------------------------------------------------- Ran 190 tests in 141.518s FAILED (errors=3) finished nosetests --with-xunitmp --cover-package=forgetracker --processes=4 --process-timeout=360 in ForgeTracker <DummyProcess(Thread-3, started daemon 139738438694656)> running nosetests --with-xunitmp --cover-package=forgeuserstats --processes=4 --process-timeout=360 in ForgeUserStats ............ ---------------------------------------------------------------------- Ran 12 tests in 17.433s OK finished nosetests --with-xunitmp --cover-package=forgeuserstats --processes=4 --process-timeout=360 in ForgeUserStats <DummyProcess(Thread-3, started daemon 139738438694656)> running nosetests --with-xunitmp --cover-package=forgewiki --processes=4 --process-timeout=360 in ForgeWiki .......................................................S........ ---------------------------------------------------------------------- Ran 64 tests in 46.744s OK (SKIP=1) finished nosetests --with-xunitmp --cover-package=forgewiki --processes=4 --process-timeout=360 in ForgeWiki .......................................................................................... ---------------------------------------------------------------------- Ran 90 tests in 242.273s OK finished nosetests --with-xunitmp --cover-package=forgesvn in ForgeSVN ...........................................................................................................................................................................................................................................................................................S................................................................................................................................................................................................................................................................................................S........................................................................................................SSSSSSSSSSS......................................................................................................................................................................................................................................................................................................................................................................... ---------------------------------------------------------------------- Ran 1049 tests in 334.314s OK (SKIP=13) finished nosetests allura/tests/ --with-xunitmp --cover-package=allura --processes=4 --process-timeout=360 in Allura ...................................................................................................................................... ---------------------------------------------------------------------- Ran 134 tests in 356.676s OK finished nosetests --with-xunitmp --cover-package=forgegit in ForgeGit Running setup_app() from allura.websetup /p/test/wiki/_discuss/thread/e22490ab/ 200 OK {"sidebar": 1, "jinja": 1, "markdown": 4, "ming": 107} Build step 'Execute shell' marked build as failure Recording plot data Skipping Cobertura coverage report as build was not SUCCESS or better ... Recording test results