Skip to content

Commit 579748b

Browse files
author
Matthew Fisher
committed
Merge pull request #2828 from romansergey/dockerfile_empty_value
fix(controller): adds migration to get rid of dockerfile's u'False' valu...
2 parents c4a1c34 + 96e67e7 commit 579748b

2 files changed

Lines changed: 147 additions & 1 deletion

File tree

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# -*- coding: utf-8 -*-
2+
from south.utils import datetime_utils as datetime
3+
from south.db import db
4+
from south.v2 import SchemaMigration
5+
from django.db import models
6+
7+
8+
class Migration(SchemaMigration):
9+
10+
def forwards(self, orm):
11+
orm.Build.objects.filter(dockerfile='False').update(dockerfile='')
12+
13+
def backwards(self, orm):
14+
pass
15+
16+
models = {
17+
u'api.app': {
18+
'Meta': {'object_name': 'App'},
19+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
20+
'id': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '64'}),
21+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
22+
'structure': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
23+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
24+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
25+
},
26+
u'api.build': {
27+
'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'uuid'),)", 'object_name': 'Build'},
28+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
29+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
30+
'dockerfile': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
31+
'image': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
32+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
33+
'procfile': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
34+
'sha': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}),
35+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
36+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
37+
},
38+
u'api.config': {
39+
'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'uuid'),)", 'object_name': 'Config'},
40+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
41+
'cpu': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
42+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
43+
'memory': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
44+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
45+
'tags': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'}),
46+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
47+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}),
48+
'values': ('json_field.fields.JSONField', [], {'default': '{}', 'blank': 'True'})
49+
},
50+
u'api.container': {
51+
'Meta': {'ordering': "[u'created']", 'object_name': 'Container'},
52+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
53+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
54+
'num': ('django.db.models.fields.PositiveIntegerField', [], {}),
55+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
56+
'release': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Release']"}),
57+
'state': ('django_fsm.FSMField', [], {'default': "u'initialized'", 'max_length': '50'}),
58+
'type': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
59+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
60+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
61+
},
62+
u'api.domain': {
63+
'Meta': {'object_name': 'Domain'},
64+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
65+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
66+
'domain': ('django.db.models.fields.TextField', [], {'unique': 'True'}),
67+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
68+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
69+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
70+
},
71+
u'api.key': {
72+
'Meta': {'unique_together': "((u'owner', u'id'),)", 'object_name': 'Key'},
73+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
74+
'id': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
75+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
76+
'public': ('django.db.models.fields.TextField', [], {'unique': 'True'}),
77+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
78+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
79+
},
80+
u'api.push': {
81+
'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'uuid'),)", 'object_name': 'Push'},
82+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
83+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
84+
'fingerprint': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
85+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
86+
'receive_repo': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
87+
'receive_user': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
88+
'sha': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
89+
'ssh_connection': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
90+
'ssh_original_command': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
91+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
92+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'})
93+
},
94+
u'api.release': {
95+
'Meta': {'ordering': "[u'-created']", 'unique_together': "((u'app', u'version'),)", 'object_name': 'Release'},
96+
'app': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.App']"}),
97+
'build': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Build']", 'null': 'True'}),
98+
'config': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['api.Config']"}),
99+
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
100+
'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}),
101+
'summary': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
102+
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
103+
'uuid': ('api.fields.UuidField', [], {'unique': 'True', 'max_length': '32', 'primary_key': 'True'}),
104+
'version': ('django.db.models.fields.PositiveIntegerField', [], {})
105+
},
106+
u'auth.group': {
107+
'Meta': {'object_name': 'Group'},
108+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
109+
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
110+
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
111+
},
112+
u'auth.permission': {
113+
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
114+
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
115+
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
116+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
117+
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
118+
},
119+
u'auth.user': {
120+
'Meta': {'object_name': 'User'},
121+
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
122+
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
123+
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
124+
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
125+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
126+
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
127+
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
128+
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
129+
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
130+
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
131+
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
132+
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
133+
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
134+
},
135+
u'contenttypes.contenttype': {
136+
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
137+
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
138+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
139+
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
140+
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
141+
}
142+
}
143+
144+
complete_apps = ['api']

controller/api/tests/test_perm.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,9 @@ def test_create(self):
162162
for model in ['builds', 'config', 'containers', 'releases']:
163163
response = self.client.get("/v1/apps/{}/{}/".format(app_id, model),
164164
HTTP_AUTHORIZATION='token {}'.format(self.token2))
165-
self.assertEqual(response.data['detail'], 'Not found')
165+
msg = "Failed: status '%s', and data '%s'" % (response.status_code, response.data)
166+
self.assertEqual(response.status_code, 404, msg=msg)
167+
self.assertEqual(response.data['detail'], 'Not found', msg=msg)
166168
# TODO: test that git pushing to the app fails
167169
# give user 2 permission to user 1's app
168170
url = "/v1/apps/{}/perms".format(app_id)

0 commit comments

Comments
 (0)