Merge lp:~cjohnston/ubuntu-ci-services-itself/s-ticket_component-subticket into lp:ubuntu-ci-services-itself

Proposed by Chris Johnston
Status: Merged
Approved by: Francis Ginther
Approved revision: 61
Merged at revision: 61
Proposed branch: lp:~cjohnston/ubuntu-ci-services-itself/s-ticket_component-subticket
Merge into: lp:ubuntu-ci-services-itself
Prerequisite: lp:~cjohnston/ubuntu-ci-services-itself/ts-ticket-more-write-api
Diff against target: 191 lines (+19/-17)
9 files modified
docs/components/ticket-system.rst (+5/-2)
ticket_system/ticket/admin.py (+1/-1)
ticket_system/ticket/api.py (+1/-2)
ticket_system/ticket/migrations/0001_initial.py (+2/-2)
ticket_system/ticket/models.py (+1/-1)
ticket_system/ticket/tests/test_full_read_api.py (+1/-1)
ticket_system/ticket/tests/test_models.py (+4/-4)
ticket_system/ticket/tests/test_read_api.py (+2/-2)
ticket_system/ticket/tests/test_write_api.py (+2/-2)
To merge this branch: bzr merge lp:~cjohnston/ubuntu-ci-services-itself/s-ticket_component-subticket
Reviewer Review Type Date Requested Status
Francis Ginther Approve
Ursula Junque (community) Approve
Review via email: mp+199867@code.launchpad.net

Commit message

Renames ticket_component to subticket for continuity

To post a comment you must log in.
Revision history for this message
Ursula Junque (ursinha) wrote :

Yes! Thanks :)

review: Approve
60. By Chris Johnston

[r=Francis Ginther] Add a write API to the TS SubTicket/SPU/Artifact resources from Chris Johnston

61. By Chris Johnston

Rename ticket_component

Revision history for this message
Francis Ginther (fginther) wrote :

Approve.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'docs/components/ticket-system.rst'
--- docs/components/ticket-system.rst 2013-12-20 19:41:18 +0000
+++ docs/components/ticket-system.rst 2013-12-20 22:41:45 +0000
@@ -183,12 +183,13 @@
183183
184::184::
185185
186 curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"name": "my_artifact", "ticket_component": "/api/v1/ticket/X/", "reference": "http://path.to/artifact/", "type": "SPU"}' http://localhost:8000/api/v1/artifact/186 curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"name": "my_artifact", "subticket": "/api/v1/ticket/X/", "reference": "http://path.to/artifact/", "type": "SPU"}' http://localhost:8000/api/v1/artifact/
187187
188create_subticket188create_subticket
189~~~~~~~~~~~~~~~~189~~~~~~~~~~~~~~~~
190190
191::191::
192
192 curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"source_package_upload": "/api/v1/spu/X/, "ticket": "/api/v1/ticket/X/, "assignee": "test@example.com"}' http://localhost:8000/api/v1/subticket/193 curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"source_package_upload": "/api/v1/spu/X/, "ticket": "/api/v1/ticket/X/, "assignee": "test@example.com"}' http://localhost:8000/api/v1/subticket/
193194
194Person195Person
@@ -271,6 +272,7 @@
271*return all binary packages*272*return all binary packages*
272273
273::274::
275
274 curl --dump-header - http://localhost:8000/api/v1/binarypackage/276 curl --dump-header - http://localhost:8000/api/v1/binarypackage/
275277
276add_binary_package278add_binary_package
@@ -350,6 +352,7 @@
350352
351subticket353subticket
352~~~~~~~~~354~~~~~~~~~
355
353::356::
354357
355 class SubTicket(models.Model):358 class SubTicket(models.Model):
@@ -376,7 +379,7 @@
376 379
377 class Artifact(models.Model):380 class Artifact(models.Model):
378 type = models.CharField(choices=["test_result", "source_upload", "test_failure_log"]381 type = models.CharField(choices=["test_result", "source_upload", "test_failure_log"]
379 ticket_component = models.ForeignKey("TicketComponent")382 subticket = models.ForeignKey("subticket")
380 reference = models.CharField(max_length=4096) # Provided by the artifact manager383 reference = models.CharField(max_length=4096) # Provided by the artifact manager
381384
382person385person
383386
=== modified file 'ticket_system/ticket/admin.py'
--- ticket_system/ticket/admin.py 2013-12-11 19:09:46 +0000
+++ ticket_system/ticket/admin.py 2013-12-20 22:41:45 +0000
@@ -37,7 +37,7 @@
37class ArtifactAdmin(admin.ModelAdmin):37class ArtifactAdmin(admin.ModelAdmin):
38 list_filter = ['type']38 list_filter = ['type']
39 search_fields = ['name']39 search_fields = ['name']
40 list_display = ('name', 'ticket_component', 'type')40 list_display = ('name', 'subticket', 'type')
4141
42admin.site.register(Ticket, TicketAdmin)42admin.site.register(Ticket, TicketAdmin)
43admin.site.register(SubTicket, SubTicketAdmin)43admin.site.register(SubTicket, SubTicketAdmin)
4444
=== modified file 'ticket_system/ticket/api.py'
--- ticket_system/ticket/api.py 2013-12-20 19:41:18 +0000
+++ ticket_system/ticket/api.py 2013-12-20 22:41:45 +0000
@@ -53,8 +53,7 @@
5353
5454
55class ArtifactResource(ModelResource):55class ArtifactResource(ModelResource):
56 ticket_component = fields.ToOneField(SubTicketResource, 'ticket_component',56 subticket = fields.ToOneField(SubTicketResource, 'subticket', full=True)
57 full=True)
5857
59 class Meta:58 class Meta:
60 queryset = Artifact.objects.all()59 queryset = Artifact.objects.all()
6160
=== modified file 'ticket_system/ticket/migrations/0001_initial.py'
--- ticket_system/ticket/migrations/0001_initial.py 2013-12-19 17:26:40 +0000
+++ ticket_system/ticket/migrations/0001_initial.py 2013-12-20 22:41:45 +0000
@@ -48,7 +48,7 @@
48 db.create_table('artifact', (48 db.create_table('artifact', (
49 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),49 (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
50 ('type', self.gf('django.db.models.fields.CharField')(max_length=4096)),50 ('type', self.gf('django.db.models.fields.CharField')(max_length=4096)),
51 ('ticket_component', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ticket.SubTicket'])),51 ('subticket', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ticket.SubTicket'])),
52 ('reference', self.gf('django.db.models.fields.CharField')(max_length=4096)),52 ('reference', self.gf('django.db.models.fields.CharField')(max_length=4096)),
53 ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)),53 ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)),
54 ))54 ))
@@ -80,7 +80,7 @@
80 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),80 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
81 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}),81 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}),
82 'reference': ('django.db.models.fields.CharField', [], {'max_length': '4096'}),82 'reference': ('django.db.models.fields.CharField', [], {'max_length': '4096'}),
83 'ticket_component': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['ticket.SubTicket']"}),83 'subticket': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['ticket.SubTicket']"}),
84 'type': ('django.db.models.fields.CharField', [], {'max_length': '4096'})84 'type': ('django.db.models.fields.CharField', [], {'max_length': '4096'})
85 },85 },
86 u'ticket.sourcepackageupload': {86 u'ticket.sourcepackageupload': {
8787
=== modified file 'ticket_system/ticket/models.py'
--- ticket_system/ticket/models.py 2013-12-19 17:26:40 +0000
+++ ticket_system/ticket/models.py 2013-12-20 22:41:45 +0000
@@ -177,7 +177,7 @@
177 ('LOGS', 'Logs'),177 ('LOGS', 'Logs'),
178 )178 )
179 type = models.CharField(choices=ARTIFACT_TYPE, max_length=4096)179 type = models.CharField(choices=ARTIFACT_TYPE, max_length=4096)
180 ticket_component = models.ForeignKey(SubTicket)180 subticket = models.ForeignKey(SubTicket)
181 # 'reference' provided by the artifact manager181 # 'reference' provided by the artifact manager
182 reference = models.CharField(max_length=4096)182 reference = models.CharField(max_length=4096)
183 name = models.CharField(max_length=4096)183 name = models.CharField(max_length=4096)
184184
=== modified file 'ticket_system/ticket/tests/test_full_read_api.py'
--- ticket_system/ticket/tests/test_full_read_api.py 2013-12-20 19:41:18 +0000
+++ ticket_system/ticket/tests/test_full_read_api.py 2013-12-20 22:41:45 +0000
@@ -27,7 +27,7 @@
27 sourcepackage=self.sourcepackage)27 sourcepackage=self.sourcepackage)
28 self.subticket = mommy.make('SubTicket', ticket=self.ticket,28 self.subticket = mommy.make('SubTicket', ticket=self.ticket,
29 source_package_upload=self.spu)29 source_package_upload=self.spu)
30 self.artifact = mommy.make('Artifact', ticket_component=self.subticket)30 self.artifact = mommy.make('Artifact', subticket=self.subticket)
31 self.maxDiff = None31 self.maxDiff = None
3232
33 def test_get_fullticket_api(self):33 def test_get_fullticket_api(self):
3434
=== modified file 'ticket_system/ticket/tests/test_models.py'
--- ticket_system/ticket/tests/test_models.py 2013-12-19 17:26:40 +0000
+++ ticket_system/ticket/tests/test_models.py 2013-12-20 22:41:45 +0000
@@ -68,11 +68,11 @@
68 return subticket68 return subticket
6969
7070
71def create_artifact(name="test.log", ticket_component=None,71def create_artifact(name="test.log", subticket=None,
72 reference='123abc'):72 reference='123abc'):
73 artifact = Artifact()73 artifact = Artifact()
74 artifact.name = name74 artifact.name = name
75 artifact.ticket_component = ticket_component75 artifact.subticket = subticket
76 artifact.reference = reference76 artifact.reference = reference
77 artifact.save()77 artifact.save()
78 return artifact78 return artifact
@@ -87,11 +87,11 @@
87 self.subticket = create_subticket(ticket=self.ticket,87 self.subticket = create_subticket(ticket=self.ticket,
88 assignee='test@example.com',88 assignee='test@example.com',
89 source_package_upload=self.spu)89 source_package_upload=self.spu)
90 self.artifact_1 = create_artifact(ticket_component=self.subticket)90 self.artifact_1 = create_artifact(subticket=self.subticket)
9191
92 def test_creating_an_artifact(self):92 def test_creating_an_artifact(self):
93 artifact_in_database = Artifact.objects.exclude(93 artifact_in_database = Artifact.objects.exclude(
94 ticket_component=None)94 subticket=None)
95 self.assertEquals(len(artifact_in_database), 1)95 self.assertEquals(len(artifact_in_database), 1)
96 only_artifact_in_database = artifact_in_database[0]96 only_artifact_in_database = artifact_in_database[0]
97 self.assertEquals(only_artifact_in_database, self.artifact_1)97 self.assertEquals(only_artifact_in_database, self.artifact_1)
9898
=== modified file 'ticket_system/ticket/tests/test_read_api.py'
--- ticket_system/ticket/tests/test_read_api.py 2013-12-20 19:41:18 +0000
+++ ticket_system/ticket/tests/test_read_api.py 2013-12-20 22:41:45 +0000
@@ -27,14 +27,14 @@
27 sourcepackage=self.sourcepackage)27 sourcepackage=self.sourcepackage)
28 self.subticket = mommy.make('SubTicket', ticket=self.ticket,28 self.subticket = mommy.make('SubTicket', ticket=self.ticket,
29 source_package_upload=self.spu)29 source_package_upload=self.spu)
30 self.artifact = mommy.make('Artifact', ticket_component=self.subticket)30 self.artifact = mommy.make('Artifact', subticket=self.subticket)
3131
32 def test_get_artifact_api(self):32 def test_get_artifact_api(self):
33 obj = self.getResource('artifact/')33 obj = self.getResource('artifact/')
34 self.assertEqual(obj['objects'][0], {34 self.assertEqual(obj['objects'][0], {
35 u'name': unicode(self.artifact.name),35 u'name': unicode(self.artifact.name),
36 u'reference': unicode(self.artifact.reference),36 u'reference': unicode(self.artifact.reference),
37 u'ticket_component': {37 u'subticket': {
38 u'status': self.subticket.status,38 u'status': self.subticket.status,
39 u'current_workflow_step': self.subticket.current_workflow_step,39 u'current_workflow_step': self.subticket.current_workflow_step,
40 u'assignee': unicode(self.subticket.assignee),40 u'assignee': unicode(self.subticket.assignee),
4141
=== modified file 'ticket_system/ticket/tests/test_write_api.py'
--- ticket_system/ticket/tests/test_write_api.py 2013-12-20 19:41:18 +0000
+++ ticket_system/ticket/tests/test_write_api.py 2013-12-20 22:41:45 +0000
@@ -154,14 +154,14 @@
154 def setUp(self):154 def setUp(self):
155 super(APICreateArtifactResourceTest, self).setUp('/api/v1')155 super(APICreateArtifactResourceTest, self).setUp('/api/v1')
156 self.subticket = mommy.make('SubTicket')156 self.subticket = mommy.make('SubTicket')
157 self.artifact = mommy.make('Artifact', ticket_component=self.subticket)157 self.artifact = mommy.make('Artifact', subticket=self.subticket)
158 self.resource = 'artifact/'158 self.resource = 'artifact/'
159 self.detail_url = self.resource + '{0}/'.format(self.artifact.pk)159 self.detail_url = self.resource + '{0}/'.format(self.artifact.pk)
160 self.subticket_uri = '/api/v1/subticket/{0}/'.format(self.subticket.pk)160 self.subticket_uri = '/api/v1/subticket/{0}/'.format(self.subticket.pk)
161 self.post_artifact_data = {161 self.post_artifact_data = {
162 'type': 'SPU',162 'type': 'SPU',
163 'name': 'my_artifact',163 'name': 'my_artifact',
164 'ticket_component': self.subticket_uri,164 'subticket': self.subticket_uri,
165 'reference': 'm1CTLg5FHY',165 'reference': 'm1CTLg5FHY',
166 }166 }
167167

Subscribers

People subscribed via source and target branches