Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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']))
Example #4
0
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)
Example #5
0
    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
Example #6
0
    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
Example #7
0
def test_job_routing(route_to, kwargs, queue, key):
    route_to(job, [unique_string()], kwargs, queue, key)
Example #8
0
def test_job_routing(route_to, kwargs, queue, key):
    route_to(job, [unique_string()], kwargs, queue, key)