def test_pre_upload_invalid_namespace(self): """Assert that status 400 is returned when the namespace is invalid.""" bad_collection = handlers_endpoints_v1.DigestCollection( namespace=handlers_endpoints_v1.Namespace(namespace='~tildewhatevs')) bad_collection.items.append(generate_digest('pangolin')) with self.call_should_fail('400'): self.call_api( 'preupload', self.message_to_dict(bad_collection), 200)
def test_pre_upload_invalid_hash(self): """Assert that status 400 is returned when the digest is invalid.""" bad_collection = handlers_endpoints_v1.DigestCollection( namespace=handlers_endpoints_v1.Namespace()) bad_digest = hash_content('some stuff') bad_digest = 'g' + bad_digest[1:] # that's not hexadecimal! bad_collection.items.append( handlers_endpoints_v1.Digest(digest=bad_digest, size=10)) with self.call_should_fail('400'): self.call_api( 'preupload', self.message_to_dict(bad_collection), 200)
def test_check_existing_enqueues_tasks(self): """Assert that existent entities are enqueued.""" collection = handlers_endpoints_v1.DigestCollection( namespace=handlers_endpoints_v1.Namespace()) collection.items.append( generate_digest(collection.namespace.namespace, 'some content')) key = model.get_entry_key(collection.namespace.namespace, collection.items[0].digest) # guarantee that one digest already exists in the datastore model.new_content_entry(key).put() self.call_api('preupload', message_to_dict(collection), 200) # find enqueued tasks self.assertEqual(1, self.execute_tasks())
def generate_collection(contents, namespace=None): if namespace is None: namespace = handlers_endpoints_v1.Namespace() return handlers_endpoints_v1.DigestCollection( namespace=namespace, items=[generate_digest(content) for content in contents])
def generate_collection(namespace, contents): return handlers_endpoints_v1.DigestCollection( namespace=handlers_endpoints_v1.Namespace(namespace=namespace), items=[generate_digest(namespace, content) for content in contents])