def test_from_marathon_app_data(self, _r, controller):
     """
     A model imported from app_data generates the same app_data as the model
     it was imported from.
     """
     app_data = controller.get_marathon_app_data()
     new_controller = DockerController.from_marathon_app_data(
         controller.owner, controller.organization, app_data)
     assert app_data == new_controller.get_marathon_app_data()
Ejemplo n.º 2
0
 def post(self, request):
     form = HiddenImportForm(request.POST)
     assert form.is_valid()
     controller = DockerController.from_marathon_app_data(
         self.request.user, active_organization(self.request),
         json.loads(form.cleaned_data['app_data']),
         form.cleaned_data['name'])
     tasks.start_new_controller.delay(controller.pk)
     messages.info(self.request, u"App created: {name}".format(
         **form.cleaned_data))
     return HttpResponseRedirect('/')
Ejemplo n.º 3
0
 def post(self, request):
     form = HiddenImportForm(request.POST)
     assert form.is_valid()
     controller = DockerController.from_marathon_app_data(
         self.request.user, active_organization(self.request),
         json.loads(form.cleaned_data['app_data']),
         form.cleaned_data['name'])
     tasks.start_new_controller.delay(controller.pk)
     messages.info(self.request,
                   u"App created: {name}".format(**form.cleaned_data))
     return HttpResponseRedirect('/')
    def test_from_marathon_app_data_args(self, _r, controller, u):
        """
        A model imported from app_data generates the same app_data as the model
        it was imported from.
        """
        if controller.rabbitmq_vhost_needed and controller.rabbitmq_vhost_name:
            self.mock_successful_new_vhost(
                controller.rabbitmq_vhost_name,
                controller.rabbitmq_vhost_username)
            u.return_value = controller.rabbitmq_vhost_username

        app_data = controller.get_marathon_app_data()
        new_controller = DockerController.from_marathon_app_data(
            controller.owner, controller.organization, app_data)
        assert app_data == new_controller.get_marathon_app_data()
    def test_from_marathon_app_data_with_name(self, _r, controller, name):
        """
        A model imported from app_data generates the same app_data as the model
        it was imported from, but with the name field overridden.

        We limit the number of examples we generate because we don't need
        hundreds of examples to verify that this behaviour is correct.
        """
        app_data = controller.get_marathon_app_data()
        new_controller = DockerController.from_marathon_app_data(
            controller.owner, controller.organization, app_data, name=name)
        assert new_controller.name == name

        app_data_with_name = json.loads(json.dumps(app_data))
        app_data_with_name["labels"]["name"] = name
        assert app_data_with_name == new_controller.get_marathon_app_data()
    def test_from_marathon_app_data_with_name(self, _r, controller, name, u):
        """
        A model imported from app_data generates the same app_data as the model
        it was imported from, but with the name field overridden.

        We limit the number of examples we generate because we don't need
        hundreds of examples to verify that this behaviour is correct.
        """
        if controller.rabbitmq_vhost_needed and controller.rabbitmq_vhost_name:
            self.mock_successful_new_vhost(
                controller.rabbitmq_vhost_name,
                controller.rabbitmq_vhost_username)
            u.return_value = controller.rabbitmq_vhost_username

        app_data = controller.get_marathon_app_data()
        new_controller = DockerController.from_marathon_app_data(
            controller.owner, controller.organization, app_data, name=name)
        assert new_controller.name == name

        app_data_with_name = json.loads(json.dumps(app_data))
        app_data_with_name["labels"]["name"] = name
        assert app_data_with_name == new_controller.get_marathon_app_data()