Exemplo n.º 1
0
def apps_modules_setup(test_case):
    """
    Additional setUp and tearDown for get_apps_modules tests
    """
    test_case.app.add_module(Module.new_module("Module0", "en"))
    test_case.app.save()

    test_case.other_app = Application.new_app(test_case.project.name, "OtherApp")
    test_case.other_app.add_module(Module.new_module("Module0", "en"))
    test_case.other_app.save()

    test_case.deleted_app = Application.new_app(test_case.project.name, "DeletedApp")
    test_case.deleted_app.add_module(Module.new_module("Module0", "en"))
    test_case.deleted_app.save()
    test_case.deleted_app.delete_app()
    test_case.deleted_app.save()  # delete_app() changes doc_type. This save() saves that.

    test_case.linked_app = create_linked_app(test_case.project.name, test_case.app.id,
                                             test_case.project.name, 'LinkedApp')
    try:
        yield
    finally:
        Application.get_db().delete_doc(test_case.linked_app.id)
        Application.get_db().delete_doc(test_case.deleted_app.id)
        Application.get_db().delete_doc(test_case.other_app.id)
Exemplo n.º 2
0
        def _inner(request, link_domain, data, master_domain=domain):
            clear_app_cache(request, link_domain)
            if data['toggles']:
                for slug in data['toggles'].split(","):
                    set_toggle(slug, link_domain, True, namespace=toggles.NAMESPACE_DOMAIN)
            linked = data.get('linked')
            if linked:
                for module in app.modules:
                    if isinstance(module, ReportModule):
                        messages.error(request, _('This linked application uses mobile UCRs which '
                                                  'are currently not supported. For this application to '
                                                  'function correctly, you will need to remove those modules.'))
                        return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))

                master_version = get_latest_released_app_version(app.domain, app_id)
                if not master_version:
                    messages.error(request, _("Creating linked app failed."
                                              " Unable to get latest released version of your app."
                                              " Make sure you have at least one released build."))
                    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))

                linked_app = create_linked_app(master_domain, app_id, link_domain, data['name'])
                try:
                    update_linked_app(linked_app, request.couch_user.get_id)
                except AppLinkError as e:
                    messages.error(request, str(e))
                    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))

                messages.success(request, _('Application successfully copied and linked.'))
                return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id]))
            else:
                extra_properties = {'name': data['name']}
                app_copy = import_app_util(app_id_or_source, link_domain, extra_properties)
                return back_to_main(request, app_copy.domain, app_id=app_copy._id)
Exemplo n.º 3
0
def _create_linked_app(request, master_app, link_domain, link_app_name):
    master_domain = master_app.domain
    master_version = get_latest_released_app_version(master_domain,
                                                     master_app._id)
    if not master_version:
        messages.error(
            request,
            _("Creating linked app failed."
              " Unable to get latest released version of your app."
              " Make sure you have at least one released build."))
        return HttpResponseRedirect(
            reverse_util('app_settings',
                         params={},
                         args=[master_domain, master_app._id]))

    linked_app = create_linked_app(master_domain, master_app._id, link_domain,
                                   link_app_name)
    try:
        update_linked_app(linked_app, request.couch_user.get_id)
    except AppLinkError as e:
        linked_app.delete()
        messages.error(request, str(e))
        return HttpResponseRedirect(
            reverse_util('app_settings',
                         params={},
                         args=[master_domain, master_app._id]))

    messages.success(request, _('Application successfully copied and linked.'))
    return HttpResponseRedirect(
        reverse_util('app_settings',
                     params={},
                     args=[link_domain, linked_app.get_id]))
Exemplo n.º 4
0
def _create_linked_app(request, app_id, build_id, from_domain, to_domain, link_app_name):
    # Linked apps can only be created from released versions
    error = None
    if from_domain == to_domain:
        error = _("You may not create a linked app in the same domain as its master app.")
    elif build_id:
        from_app = Application.get(build_id)
        if not from_app.is_released:
            error = _("Make sure the version you are copying from is released.")
    else:
        from_app = get_latest_released_app(from_domain, app_id)
        if not from_app:
            error = _("Unable to get latest released version of your app."
                      " Make sure you have at least one released build.")

    if error:
        messages.error(request, _("Creating linked app failed. {}").format(error))
        return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[from_domain, app_id]))

    linked_app = create_linked_app(from_domain, from_app.master_id, to_domain, link_app_name)
    try:
        update_linked_app(linked_app, from_app, request.couch_user.get_id)
    except AppLinkError as e:
        linked_app.delete()
        messages.error(request, str(e))
        return HttpResponseRedirect(reverse_util('app_settings', params={},
                                                 args=[from_domain, from_app.master_id]))

    messages.success(request, _('Application successfully copied and linked.'))
    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[to_domain, linked_app.get_id]))
Exemplo n.º 5
0
def apps_modules_setup(test_case):
    """
    Additional setUp and tearDown for get_apps_modules tests
    """
    test_case.app.add_module(Module.new_module("Module0", "en"))
    test_case.app.save()

    test_case.other_app = Application.new_app(test_case.project.name, "OtherApp")
    test_case.other_app.add_module(Module.new_module("Module0", "en"))
    test_case.other_app.save()

    test_case.deleted_app = Application.new_app(test_case.project.name, "DeletedApp")
    test_case.deleted_app.add_module(Module.new_module("Module0", "en"))
    test_case.deleted_app.save()
    test_case.deleted_app.delete_app()
    test_case.deleted_app.save()  # delete_app() changes doc_type. This save() saves that.

    test_case.linked_app = create_linked_app(test_case.project.name, test_case.app.id,
                                             test_case.project.name, 'LinkedApp')
    try:
        yield
    finally:
        Application.get_db().delete_doc(test_case.linked_app.id)
        Application.get_db().delete_doc(test_case.deleted_app.id)
        Application.get_db().delete_doc(test_case.other_app.id)
Exemplo n.º 6
0
        def _inner(request, link_domain, data, master_domain=domain):
            clear_app_cache(request, link_domain)
            if data['toggles']:
                for slug in data['toggles'].split(","):
                    set_toggle(slug, link_domain, True, namespace=toggles.NAMESPACE_DOMAIN)
            linked = data.get('linked')
            if linked:
                master_version = get_latest_released_app_version(app.domain, app_id)
                if not master_version:
                    messages.error(request, _("Creating linked app failed."
                                              " Unable to get latest released version of your app."
                                              " Make sure you have at least one released build."))
                    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))

                linked_app = create_linked_app(master_domain, app_id, link_domain, data['name'])
                try:
                    update_linked_app(linked_app, request.couch_user.get_id)
                except AppLinkError as e:
                    linked_app.delete()
                    messages.error(request, str(e))
                    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))

                messages.success(request, _('Application successfully copied and linked.'))
                return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id]))
            else:
                extra_properties = {'name': data['name']}
                try:
                    app_copy = import_app_util(app_id_or_source, link_domain, extra_properties)
                except ReportConfigurationNotFoundError:
                    messages.error(request, _("Copying the application failed because "
                                              "your application contains a Report Module "
                                              "that references a static UCR configuration."))
                    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id]))
                return back_to_main(request, app_copy.domain, app_id=app_copy._id)
Exemplo n.º 7
0
        def _inner(request, link_domain, data, master_domain=domain):
            clear_app_cache(request, link_domain)
            if data['toggles']:
                for slug in data['toggles'].split(","):
                    set_toggle(slug,
                               link_domain,
                               True,
                               namespace=toggles.NAMESPACE_DOMAIN)
            linked = data.get('linked')
            if linked:
                master_version = get_latest_released_app_version(
                    app.domain, app_id)
                if not master_version:
                    messages.error(
                        request,
                        _("Creating linked app failed."
                          " Unable to get latest released version of your app."
                          " Make sure you have at least one released build."))
                    return HttpResponseRedirect(
                        reverse_util('app_settings',
                                     params={},
                                     args=[domain, app_id]))

                linked_app = create_linked_app(master_domain, app_id,
                                               link_domain, data['name'])
                try:
                    update_linked_app(linked_app, request.couch_user.get_id)
                except AppLinkError as e:
                    linked_app.delete()
                    messages.error(request, str(e))
                    return HttpResponseRedirect(
                        reverse_util('app_settings',
                                     params={},
                                     args=[domain, app_id]))

                messages.success(
                    request, _('Application successfully copied and linked.'))
                return HttpResponseRedirect(
                    reverse_util('app_settings',
                                 params={},
                                 args=[link_domain, linked_app.get_id]))
            else:
                extra_properties = {'name': data['name']}
                try:
                    app_copy = import_app_util(app_id_or_source, link_domain,
                                               extra_properties)
                except ReportConfigurationNotFoundError:
                    messages.error(
                        request,
                        _("Copying the application failed because "
                          "your application contains a Report Module "
                          "that references a static UCR configuration."))
                    return HttpResponseRedirect(
                        reverse_util('app_settings',
                                     params={},
                                     args=[domain, app_id]))
                return back_to_main(request,
                                    app_copy.domain,
                                    app_id=app_copy._id)
Exemplo n.º 8
0
def _create_linked_app(request, master_app, link_domain, link_app_name):
    master_domain = master_app.domain
    master_version = get_latest_released_app_version(master_domain, master_app._id)
    if not master_version:
        messages.error(request, _("Creating linked app failed."
                                  " Unable to get latest released version of your app."
                                  " Make sure you have at least one released build."))
        return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[master_domain, master_app._id]))

    linked_app = create_linked_app(master_domain, master_app._id, link_domain, link_app_name)
    try:
        update_linked_app(linked_app, request.couch_user.get_id)
    except AppLinkError as e:
        linked_app.delete()
        messages.error(request, str(e))
        return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[master_domain, master_app._id]))

    messages.success(request, _('Application successfully copied and linked.'))
    return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id]))