Example #1
0
def removed_objects_with_ids_and_removed_related_object(
        object_type, object_with_related_removed_ids, related_object_type, relation_name):
    _factory = factories_registry.get_factory(object_type)
    _related_factory = factories_registry.get_factory(related_object_type)
    split_ids = object_with_related_removed_ids.split(',')
    related_object = _related_factory.create(is_removed=True)
    factory_kwargs = {'is_removed': True, relation_name: related_object}
    for obj_id in split_ids:
        factory_kwargs['pk'] = int(obj_id)
        _factory.create(**factory_kwargs)
Example #2
0
def removed_objects_with_ids(object_type, object_ids):
    _factory = factories_registry.get_factory(object_type)
    split_ids = object_ids.split(',')
    for obj_id in split_ids:
        instance = _factory(pk=int(obj_id))
        instance.is_removed = True
        instance.save()
def logged_user_type(context, user_type):
    _factory = factories_registry.get_factory(user_type)
    context.user = _factory(
        email='{}@dane.gov.pl'.format(user_type.replace(' ', '_')),
        password='******',
    )
    DjangoClient().force_login(context.user)
Example #4
0
def admin_request_logged_user_is(admin_context, user_type):
    _factory = factories_registry.get_factory(user_type)
    assert _factory is not None
    admin_context.admin.user = _factory.create(
        email='{}@dane.gov.pl'.format(user_type.replace(' ', '_')),
        password='******',
        phone='0048123456789',
    )
Example #5
0
def object_type_created_with_params(context, object_type, params):
    params = json.loads(params)
    if object_type.endswith('report'):
        _factory = factories_registry.get_factory(object_type)
        return _factory.create(**params)
    object_id = params.pop('id')
    tags = params.pop('tags', [])
    tag_factory = factories_registry.get_factory('tag')
    _tags = []
    for name in tags:
        tag = tag_factory.create(name=name)
        _tags.append(tag)
    if _tags:
        params['tags'] = _tags
    if object_type == 'chart':
        params['created_by'] = context.user
    create_object(object_type, object_id, **params)
Example #6
0
def create_object(obj_type, obj_id, is_removed=False, status='published', **kwargs):
    _factory = factories_registry.get_factory(obj_type)
    kwargs['pk'] = obj_id
    if obj_type not in ['tag', 'task result']:
        kwargs['is_removed'] = is_removed
    if 'user' not in obj_type:
        kwargs['status'] = status
    return _factory(**kwargs)
def generic_user_with_data(object_type, user_data, context, admin_context):
    assert object_type.endswith(
        ' user'), 'this keyword is only suited for creating users'
    factory_ = factories_registry.get_factory(object_type)
    if factory_ is None:
        raise ValueError('invalid object type: %s' % object_type)
    user_data = json.loads(user_data)
    user = admin_context.admin.user = context.user = factory_(**user_data)
    DjangoClient().force_login(user)
def logged_out_agent_user_created_with_params(context, params):
    _factory = factories_registry.get_factory('agent user')
    kwargs = {
        'email': '*****@*****.**',
        'password': '******',
    }
    kwargs.update(json.loads(params))
    context.user = _factory(**kwargs)
    DjangoClient().logout()
Example #9
0
def changelist_for_object_type_is_requested(admin_context, object_type):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    client = Client()
    client.force_login(admin_context.admin.user)
    page_url = reverse(
        f'admin:{model._meta.app_label}_{model._meta.model_name}_changelist')
    response = client.get(page_url, follow=True)
    admin_context.response = response
def also_x_subscriptions_of_random_factory(total, factory_name, context):
    _factory = factories_registry.get_factory(factory_name)
    instances = _factory.create_batch(total)
    for instance in instances:
        data = {
            'object_name': instance._meta.object_name.lower(),
            'object_ident': instance.id
        }
        SubscriptionFactory.create(user=context.user, data=data)
def logged_extra_agent_with_id_of_agent_with_id(context, extra_agent_id,
                                                agent_id):
    _agent_factory = factories_registry.get_factory('agent user')
    _active_user_factory = factories_registry.get_factory('active user')
    agent = _agent_factory(
        id=agent_id,
        email='*****@*****.**',
        password='******',
    )
    user = _active_user_factory(
        id=extra_agent_id,
        email='*****@*****.**',
        password='******',
    )
    user.extra_agent_of = agent
    user.save()
    context.user = user
    DjangoClient().force_login(context.user)
Example #12
0
def latest_object_attribute_is(obj_type, attr, value):
    _factory = factories_registry.get_factory(obj_type)
    model = _factory._meta.model
    obj = model.raw.latest('id')
    attr_val = getattr(obj, attr)
    attr_val = str(attr_val) if not isinstance(attr_val, str) else attr_val
    if value == 'not None':
        assert attr_val is not None, f'{obj} attribute {attr} should not be None, but is {attr_val}'
    else:
        assert attr_val == value, f'{obj} attribute {attr} should be {value}, but is {attr_val}'
def fourth_subscription_with_id_of_an_factory(admin, s_id, object_type, f_id,
                                              s_name, context):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    try:
        instance = model.objects.get(pk=f_id)
    except model.DoesNotExist:
        instance = _factory(pk=f_id)
    data = {
        'name': s_name,
        'object_name': object_type.lower(),
        'object_ident': instance.id
    }
    SubscriptionFactory.create(user=context.user, data=data, force_id=s_id)
def subscription_with_id_of_removed_factory(admin, s_id, factory_name, f_id,
                                            s_name, context):
    _factory = factories_registry.get_factory(factory_name)
    model = _factory._meta.model
    try:
        instance = model.objects.get(pk=f_id, is_removed=True)
    except model.DoesNotExist:
        instance = _factory(pk=f_id, is_removed=True)
    data = {
        'name': s_name,
        'object_name': factory_name.lower(),
        'object_ident': instance.id
    }
    with pytest.raises(SubscribedObjectDoesNotExist):
        SubscriptionFactory.create(user=context.user, data=data, force_id=s_id)
Example #15
0
def admin_user_runs_restore_action(admin_context, object_type,
                                   requested_object_ids):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    client = Client()
    client.force_login(admin_context.admin.user)
    page_url = reverse(
        f'admin:{model._meta.app_label}_{model.__name__}trash_changelist'.
        lower())
    data = {
        'action': 'restore_objects',
        '_selected_action': requested_object_ids.split(',')
    }
    response = client.post(page_url, data=data, follow=True)
    admin_context.response = response
Example #16
0
def object_type_has_trash_if(admin_context, object_type, has_trash):
    has_trash = bool(int(has_trash))
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    client = Client()
    client.force_login(admin_context.admin.user)
    try:
        page_url = reverse(
            f'admin:{model._meta.app_label}_{model._meta.model_name}trash_changelist'
        )
        response = client.get(page_url, follow=True)
        assert has_trash
        assert response.status_code == 200
    except NoReverseMatch:
        assert not has_trash
def create_subscription(user,
                        factory_name,
                        instance_id,
                        subscription_id,
                        subscription_name,
                        instance_removed=False,
                        instance_status='published'):
    _factory = factories_registry.get_factory(factory_name)
    instance = _factory(pk=instance_id,
                        is_removed=instance_removed,
                        status=instance_status)
    data = {
        'name': subscription_name,
        'object_name': factory_name.lower(),
        'object_ident': instance.id
    }
    return SubscriptionFactory.create(user=user,
                                      data=data,
                                      force_id=subscription_id)
Example #18
0
def factory_get_or_create(object_type, params, is_removed=False):
    kwargs = json.loads(params)
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    is_model_soft_deletable = issubclass(model, SoftDeletableModel)
    manager_name = 'objects'
    if is_model_soft_deletable and is_removed:
        manager_name = 'trash'
        kwargs['is_removed'] = True

    id_ = kwargs.get('id')
    proxy_model = make_proxy_model(model)
    qs = proxy_model.objects.filter(id=id_)
    if qs.exists():
        if is_model_soft_deletable:
            qs.update(is_removed=is_removed, is_permanently_removed=False)
        instance = getattr(model, manager_name).get(id=id_)
    else:
        instance = _factory(**kwargs)
        instance.save()
    return instance
Example #19
0
def admin_request_logged_user_with_id(admin_context, user_type, user_params):
    _factory = factories_registry.get_factory(user_type)
    assert _factory is not None
    data = json.loads(user_params)
    admin_context.admin.user = _factory(**data)
Example #20
0
def publish_object_with_id_999(object_type):
    _factory = factories_registry.get_factory(object_type)
    instance = _factory(pk=999)
    instance.status = 'published'
    instance.save()
Example #21
0
def draft_object_with_id_999(object_type):
    _factory = factories_registry.get_factory(object_type)
    instance = _factory(pk=999)
    instance.status = 'draft'
    instance.save()
Example #22
0
def objects_with_ids_are_still_in_trash(object_type, unrestored_object_ids):
    _factory = factories_registry.get_factory(object_type)
    ids_list = unrestored_object_ids.split(',')
    model = _factory._meta.model
    assert model.raw.filter(pk__in=ids_list,
                            is_removed=True).count() == len(ids_list)
Example #23
0
def objects_with_ids_are_restored_from_trash(object_type, restored_object_ids):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    ids_list = restored_object_ids.split(',')
    assert model.objects.filter(pk__in=ids_list,
                                is_removed=False).count() == len(ids_list)
Example #24
0
def remove_object_with_id_pp(object_type, object_id):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    instance = model.objects.get(pk=object_id)
    instance.is_removed = True
    instance.save()
Example #25
0
def restore_object_with_id_p(object_type, object_id):
    _factory = factories_registry.get_factory(object_type)
    model = _factory._meta.model
    instance = model.raw.get(pk=object_id)
    instance.is_removed = False
    instance.save()
Example #26
0
def six_articles_p(object_type):
    _factory = factories_registry.get_factory(object_type)
    return _factory.create_batch(6)
def active_datasource_by_type_for_data(datasource_type, obj_id, data_str):
    _factory = factories_registry.get_factory(datasource_type)
    data = json.loads(data_str)
    data['status'] = 'active'
    data['id'] = obj_id
    return _factory.create(**data)
Example #28
0
def attr_to_object_with_id_ppp(attr_name, attr_value, object_type, object_id):
    _factory = factories_registry.get_factory(object_type)
    instance = _factory._meta.model.objects.get(pk=object_id)
    setattr(instance, attr_name, attr_value)
    instance.save()