Skip to content
This repository was archived by the owner on Sep 12, 2018. It is now read-only.

Commit beb1fce

Browse files
committed
Tag validation unit test
1 parent 3edf929 commit beb1fce

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/test_tags.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,39 @@ def test_notfound(self):
128128
def test_special_chars(self):
129129
repos_name = '{0}%$_-test'.format(self.gen_random_string(5))
130130
self.test_simple(repos_name)
131+
132+
def test_tag_name_validation(self):
133+
repos_name = self.gen_random_string()
134+
image_id = self.gen_hex_string()
135+
layer_data = self.gen_random_string(1024)
136+
self.upload_image(image_id, parent_id=None, layer=layer_data)
137+
138+
headers = {'User-Agent':
139+
'docker/0.7.2-dev go/go1.2 os/ostest arch/archtest'}
140+
url = lambda tag: '/v1/repositories/foo/{0}/tags/{1}'.format(
141+
repos_name, tag
142+
)
143+
144+
tag_name = '$<invalid>'
145+
resp = self.http_client.put(
146+
url(tag_name), headers=headers, data=json.dumps(image_id)
147+
)
148+
self.assertEqual(resp.status_code, 400)
149+
150+
tag_name = '.invalid'
151+
resp = self.http_client.put(
152+
url(tag_name), headers=headers, data=json.dumps(image_id)
153+
)
154+
self.assertEqual(resp.status_code, 400)
155+
156+
tag_name = '-invalid'
157+
resp = self.http_client.put(
158+
url(tag_name), headers=headers, data=json.dumps(image_id)
159+
)
160+
self.assertEqual(resp.status_code, 400)
161+
162+
tag_name = '_valid'
163+
resp = self.http_client.put(
164+
url(tag_name), headers=headers, data=json.dumps(image_id)
165+
)
166+
self.assertEqual(resp.status_code, 200, resp.data)

0 commit comments

Comments
 (0)