You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/09/24 19:07:46 UTC
[07/50] git commit: [#6608] Trac ticket import cleanups
[#6608] Trac ticket import cleanups
* Set default Trac open/closed statuses
* If a ticket urlopen call fails during import, let the import fail
rather than trying to continue in an unknown state
* Add test for setting milestone status during import
Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/ffb98428
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/ffb98428
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/ffb98428
Branch: refs/heads/cj/6422
Commit: ffb98428fbb18341a8d5f31c7d0c646cd6253992
Parents: 54c43fd
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Tue Sep 17 19:32:06 2013 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Wed Sep 18 20:24:31 2013 +0000
----------------------------------------------------------------------
ForgeImporters/forgeimporters/trac/tickets.py | 4 ++-
.../functional/data/milestone-tickets.json | 31 ++++++++++++++++++
.../tests/functional/test_import.py | 33 ++++++++++++++++++++
3 files changed, 67 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ffb98428/ForgeImporters/forgeimporters/trac/tickets.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/tickets.py b/ForgeImporters/forgeimporters/trac/tickets.py
index 88ee769..9b222b9 100644
--- a/ForgeImporters/forgeimporters/trac/tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tickets.py
@@ -120,6 +120,8 @@ class TracTicketImporter(ToolImporter):
'Tickets',
mount_point=mount_point,
mount_label=mount_label or 'Tickets',
+ open_status_names='new assigned accepted reopened',
+ closed_status_names='closed',
import_id={
'source': self.source,
'trac_url': trac_url,
@@ -135,7 +137,7 @@ class TracTicketImporter(ToolImporter):
expires=datetime.utcnow() + timedelta(minutes=60))
session(api_ticket).flush(api_ticket)
cli = AlluraImportApiClient(config['base_url'], api_ticket.api_key,
- api_ticket.secret_key, verbose=True)
+ api_ticket.secret_key, verbose=True, retry=False)
import_tracker(cli, project.shortname, mount_point,
{'user_map': json.loads(user_map) if user_map else {}},
export_string, validate=False)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ffb98428/ForgeTracker/forgetracker/tests/functional/data/milestone-tickets.json
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/data/milestone-tickets.json b/ForgeTracker/forgetracker/tests/functional/data/milestone-tickets.json
new file mode 100644
index 0000000..1961b22
--- /dev/null
+++ b/ForgeTracker/forgetracker/tests/functional/data/milestone-tickets.json
@@ -0,0 +1,31 @@
+{
+ "class": "PROJECT",
+ "trackers": {
+ "default": {
+ "artifacts": [
+ {
+ "class": "ARTIFACT",
+ "date": "2009-04-13T08:49:13Z",
+ "date_updated": "2009-07-20T15:44:32Z",
+ "id": 1,
+ "milestone": "open_milestone",
+ "status": "open",
+ "description": "",
+ "submitter": "",
+ "summary": "Ticket 1"
+ },
+ {
+ "class": "ARTIFACT",
+ "date": "2009-04-13T08:49:13Z",
+ "date_updated": "2009-07-20T15:44:32Z",
+ "id": 2,
+ "milestone": "closed_milestone",
+ "status": "closed",
+ "description": "",
+ "submitter": "",
+ "summary": "Ticket 2"
+ }
+ ]
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ffb98428/ForgeTracker/forgetracker/tests/functional/test_import.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_import.py b/ForgeTracker/forgetracker/tests/functional/test_import.py
index 8192115..5b1f5a3 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_import.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_import.py
@@ -27,11 +27,13 @@ from pylons import app_globals as g
from pylons import tmpl_context as c
from allura import model as M
+from allura.lib import helpers as h
from alluratest.controller import TestRestApiBase
from allura.tests import decorators as td
from forgetracker import model as TM
from forgetracker.import_support import ImportSupport
+
class TestImportController(TestRestApiBase):
def new_ticket(self, mount_point='/bugs/', **kw):
@@ -169,6 +171,37 @@ class TestImportController(TestRestApiBase):
assert ticket_json['summary'] in r
@td.with_tracker
+ def test_milestone_status(self):
+ """When importing, if all tickets in a milestone are closed, the
+ milestone itself should also be closed.
+
+ """
+ here_dir = os.path.dirname(__file__)
+ api_ticket = M.ApiTicket(user_id=self.user._id, capabilities={'import': ['Projects','test']},
+ expires=datetime.utcnow() + timedelta(days=1))
+ ming.orm.session(api_ticket).flush()
+ self.set_api_token(api_ticket)
+
+ doc_text = open(here_dir + '/data/milestone-tickets.json').read()
+ self.api_post('/rest/p/test/bugs/perform_import', doc=doc_text,
+ options='{"user_map": {"hinojosa4": "test-admin", "ma_boehm": "test-user"}}')
+
+ ming.orm.ThreadLocalORMSession.flush_all()
+ M.MonQTask.run_ready()
+ ming.orm.ThreadLocalORMSession.flush_all()
+
+ with h.push_context('test', mount_point='bugs', neighborhood='Projects'):
+ for milestone_fld in c.app.globals.milestone_fields:
+ milestone_names = [ms['name'] for ms in milestone_fld['milestones']]
+ assert 'open_milestone' in milestone_names, milestone_names
+ assert 'closed_milestone' in milestone_names, milestone_names
+ for milestone in milestone_fld['milestones']:
+ if milestone['name'] == 'open_milestone':
+ assert milestone['complete'] == False
+ if milestone['name'] == 'closed_milestone':
+ assert milestone['complete'] == True
+
+ @td.with_tracker
def test_link_processing(self):
import_support = ImportSupport()
result = import_support.link_processing('''test link [[2496]](http://testlink.com)