def test_dataset_api_fail_to_create_too_long_tags(self): '''Should fail creating a dataset with a tag long''' data = DatasetFactory.as_dict() data['tags'] = [unique_string(MAX_TAG_LENGTH + 1)] with self.api_user(): response = self.post(url_for('api.datasets'), data) self.assertStatus(response, 400)
def test_dataset_api_fail_to_create_too_short_tags(self): '''It should fail to create a dataset from the API because the tag is too short''' data = DatasetFactory.as_dict() data['tags'] = [unique_string(MIN_TAG_LENGTH - 1)] with self.api_user(): response = self.post(url_for('api.datasets'), data) self.assertStatus(response, 400)
def test_dataset_api_create_tags(self): '''It should create a dataset from the API with tags''' data = DatasetFactory.as_dict() data['tags'] = [unique_string(16) for _ in range(3)] with self.api_user(): response = self.post(url_for('api.datasets'), data) self.assert201(response) self.assertEqual(Dataset.objects.count(), 1) dataset = Dataset.objects.first() self.assertEqual(dataset.tags, sorted(data['tags']))
class TopicFactory(ModelFactory): class Meta: model = Topic name = factory.Faker('sentence') description = factory.Faker('text') tags = factory.LazyAttribute(lambda o: [utils.unique_string(16) for _ in range(3)]) @factory.lazy_attribute def datasets(self): return DatasetFactory.create_batch(3) @factory.lazy_attribute def reuses(self): return ReuseFactory.create_batch(3)
def assertion(func, args, kwargs, queue, key=None): __tracebackhide__ = True decorator = func(*args, **kwargs) if args or kwargs else func router = celery.amqp.router # Celery instanciate only one task by name so we need unique names suffix = unique_string().replace('-', '_') fake_task.__name__ = 'task_{0}'.format(suffix) t = decorator(fake_task) options = t._get_exec_options() route = router.route(options, t.name, task_type=t) if queue: assert route['queue'].name == queue, 'queue mismatch' if key: key = key.format(name=t.name) assert route['routing_key'] == key, 'routing_key mismatch' return route
def assertion(func, args, kwargs, queue, key=None): __tracebackhide__ = True decorator = func(*args, **kwargs) if args or kwargs else func router = celery.amqp.router # Celery instanciate only one task by name so we need unique names suffix = unique_string().replace('-', '_') fake_task.__name__ = b'task_{0}'.format(suffix) t = decorator(fake_task) options = t._get_exec_options() route = router.route(options, t.name, task_type=t) if queue: assert route['queue'].name == queue, 'queue mismatch' if key: key = key.format(name=t.name) assert route['routing_key'] == key, 'routing_key mismatch' return route
def test_job_routing(route_to, kwargs, queue, key): route_to(job, [unique_string()], kwargs, queue, key)
def test_job_routing(route_to, kwargs, queue, key): route_to(job, [unique_string()], kwargs, queue, key)