def test_teams_empty(self, get):
        m = Mock(status_code=204)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        teams = view.teams(request)
        self.assertEqual([("", "")], teams)
    def test_teams_empty(self, get):
        m = Mock(status_code=204)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        teams = view.teams(request)
        self.assertEqual([("", "")], teams)
    def test_pools_empty(self, get):
        content = u"[]"
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        pools = view.pools(request)
        self.assertListEqual([('', '')], pools)
    def test_pools(self, get):
        content = u"""[{"Pools": ["basic", "one"], "Team": "andrews"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        pools = view.pools(request)
        self.assertListEqual([("", ""), ('one', 'one'), ('basic', 'basic')], pools)
    def test_pools_empty(self, get):
        content = u"[]"
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        pools = view.pools(request)
        self.assertListEqual([('', '')], pools)
    def test_plans(self, get):
        content = u"""[{"name": "plan1"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        plans = view.plans(request)
        self.assertEqual(("", [("", ""), ('plan1', 'plan1')]), plans)
    def test_plans(self, get):
        content = u"""[{"name": "plan1"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        plans = view.plans(request)
        self.assertEqual(("", [("", ""), ('plan1', 'plan1')]), plans)
    def test_pools(self, get):
        content = u"""[{"Pools": ["basic", "one"], "Team": "andrews"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        pools = view.pools(request)
        self.assertListEqual([("", ""), ('one', 'one'), ('basic', 'basic')],
                             pools)
    def test_pools_new_api(self, get):
        content = u"""{"pools_by_team": [{"Pools": ["one"], "Team": "admin"}],
            "public_pools": [{"Default": "True", "Public": "True", "Name": "basic", "Teams": []}]}"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        pools = view.pools(request)
        self.assertEqual([("", ""), ('one', 'one'), ('basic', 'basic')], pools)
    def test_pools_new_api(self, get):
        content = u"""{"pools_by_team": [{"Pools": ["one"], "Team": "admin"}],
            "public_pools": [{"Default": "True", "Public": "True", "Name": "basic", "Teams": []}]}"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {"tsuru_token": "tokentest"}

        view = CreateApp()
        pools = view.pools(request)
        self.assertEqual([("", ""), ('one', 'one'), ('basic', 'basic')], pools)
    def test_plans_is_None(self, get_mock):
        response_mock = Mock()
        response_mock.json.return_value = None
        get_mock.return_value = response_mock

        data = {"name": "myepe", "platform": "django", "plan": "basic"}
        request = RequestFactory().post("/", data)
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        default, plans = view.plans(request)
        self.assertEqual(default, '')
        self.assertListEqual([('', '')], plans)
    def test_plans_is_None(self, get_mock):
        response_mock = Mock()
        response_mock.json.return_value = None
        get_mock.return_value = response_mock

        data = {"name": "myepe", "platform": "django", "plan": "basic"}
        request = RequestFactory().post("/", data)
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        default, plans = view.plans(request)
        self.assertEqual(default, '')
        self.assertListEqual([('', '')], plans)
    def test_should_use_create_template(self, get):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {}

        view = CreateApp()
        view.plans = lambda r: ("small", [("small", "small")])
        view.teams = lambda r: []
        view.pools = lambda r: []
        response = view.get(request)

        self.assertEqual("apps/create.html", response.template_name)
    def test_AppForm_should_be_in_context(self, get):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().get("/")
        request.session = {}

        view = CreateApp()
        view.plans = lambda r: ("basic", [("basic", "basic")])
        view.teams = lambda r: []
        view.pools = lambda r: []
        response = view.get(request)

        app_form = response.context_data['app_form']
        self.assertIsInstance(app_form, forms.AppForm)
    def test_post_without_name_should_return_form_with_errors(self, get):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().post("/", {"name": ""})
        request.session = {}

        view = CreateApp()
        view.plans = lambda r: ("small", [("small", "small")])
        view.teams = lambda r: []
        view.pools = lambda r: []
        response = view.post(request)

        form = response.context_data.get('app_form')
        self.assertIn('name', form.errors)
        self.assertIn(u'This field is required.', form.errors.get('name'))
    def test_post_with_invalid_name_should_return_500(self, post, get):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().post(
            "/",
            {"name": "myepe", "platform": "python"})
        request.session = {}
        post.return_value = Mock(status_code=500, content='Error')

        view = CreateApp()
        view.plans = lambda r: ("small", [("small", "small")])
        view.teams = lambda r: []
        view.pools = lambda r: []
        response = view.post(request)

        self.assertEqual('Error', response.context_data.get("errors"))
Beispiel #17
0
 def test_should_use_create_template(self, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().get("/")
     request.session = {}
     response = CreateApp().get(request)
     self.assertEqual("apps/create.html", response.template_name)
 def test_invalid_post_returns_context_with_message_expected(self, post):
     request = RequestFactory().post("/", {
         "name": "myepe",
         "platform": "python"
     })
     request.session = {}
     post.return_value = Mock(status_code=200)
     response = CreateApp().post(request)
     self.assertEqual("App was successfully created",
                      response.context_data.get('message'))
Beispiel #19
0
 def test_post_failure_should_include_platforms(self, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().post("/", {"name": ""})
     request.session = {}
     response = CreateApp().post(request)
     platforms = response.context_data.get('platforms')
     self.assertEqual(["python", "ruby", "static"], platforms)
    def test_post_should_send_to_tsuru_with_args_expected(self, post, get):
        post.return_value = Mock(status_code=200)

        data = {"name": "myepe", "platform": "django", "plan": "basic"}
        request = RequestFactory().post("/", data)
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        view.plans = lambda r: ("basic", [("basic", "basic")])
        view.platforms = lambda r: [("django", "django")]
        view.post(request)

        self.assertEqual(1, post.call_count)
        url = '{}/apps'.format(settings.TSURU_HOST)
        post.assert_called_with(
            url,
            data='{"platform": "django", "name": "myepe", "plan": {"name": "basic"}}',
            headers={'authorization': request.session['tsuru_token']}
        )
Beispiel #21
0
 def test_AppForm_should_be_in_context(self, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().get("/")
     request.session = {}
     response = CreateApp().get(request)
     app_form = response.context_data['app_form']
     self.assertIsInstance(app_form, forms.AppForm)
Beispiel #22
0
 def test_platform_list_should_be_in_context(self, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().get("/")
     request.session = {}
     response = CreateApp().get(request)
     platforms = response.context_data["platforms"]
     self.assertEqual(["python", "ruby", "static"], platforms)
Beispiel #23
0
 def test_post_without_name_should_return_form_with_errors(self, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().post("/", {"name": ""})
     request.session = {}
     response = CreateApp().post(request)
     form = response.context_data.get('app_form')
     self.assertIn('name', form.errors)
     self.assertIn(u'This field is required.', form.errors.get('name'))
 def test_post_should_send_to_tsuru_with_args_expected(self, post):
     post.return_value = Mock(status_code=200)
     request = RequestFactory().post("/", {
         "name": "myepe",
         "platform": "django"
     })
     request.session = {'tsuru_token': 'tokentest'}
     CreateApp().post(request)
     self.assertEqual(1, post.call_count)
     post.assert_called_with(
         '%s/apps' % settings.TSURU_HOST,
         data='{"platform": "django", "name": "myepe"}',
         headers={'authorization': request.session['tsuru_token']})
Beispiel #25
0
 def test_post_with_invalid_name_should_return_500(self, post, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().post("/", {
         "name": "myepe",
         "platform": "python"
     })
     request.session = {}
     post.return_value = Mock(status_code=500, content='Error')
     response = CreateApp().post(request)
     self.assertEqual('Error', response.context_data.get("errors"))
Beispiel #26
0
 def test_invalid_post_includes_expected_message_in_ctx(self, post, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     request = RequestFactory().post("/", {
         "name": "myepe",
         "platform": "python"
     })
     request.session = {}
     post.return_value = Mock(status_code=200)
     response = CreateApp().post(request)
     self.assertEqual("App was successfully created",
                      response.context_data.get('message'))
Beispiel #27
0
 def test_post_should_send_to_tsuru_with_args_expected(self, post, get):
     content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
     m = Mock(status_code=200, content=content)
     m.json.return_value = json.loads(content)
     get.return_value = m
     post.return_value = Mock(status_code=200)
     request = RequestFactory().post("/", {
         "name": "myepe",
         "platform": "django"
     })
     request.session = {'tsuru_token': 'tokentest'}
     CreateApp().post(request)
     self.assertEqual(1, post.call_count)
     post.assert_called_with(
         '%s/apps' % settings.TSURU_HOST,
         data='{"platform": "django", "name": "myepe"}',
         headers={'authorization': request.session['tsuru_token']})
    def test_post_with_invalid_name_should_return_500(self, post, get, error):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().post("/", {
            "name": "myepe",
            "platform": "python"
        })
        request.session = {}
        post.return_value = Mock(status_code=500, content='Error')

        view = CreateApp()
        view.plans = lambda r: ("small", [("small", "small")])
        view.teams = lambda r: []
        view.pools = lambda r: []

        view.post(request)

        error.assert_called_with(request, u'Error', fail_silently=True)
    def test_post_should_send_to_tsuru_removing_empty_keys(self, post, get):
        post.return_value = Mock(status_code=200)

        data = {"name": "myepe", "platform": "django", "plan": ""}
        request = RequestFactory().post("/", data)
        request.session = {'tsuru_token': 'tokentest'}

        view = CreateApp()
        view.plans = lambda r: ("basic", [("basic", "basic")])
        view.platforms = lambda r: [("django", "django")]
        view.post(request)

        self.assertEqual(1, post.call_count)
        url = '{}/apps'.format(settings.TSURU_HOST)
        post.assert_called_with(
            url,
            data='{"platform": "django", "name": "myepe"}',
            headers={'authorization': request.session['tsuru_token']})
    def test_post_with_invalid_name_should_return_500(self, post, get, error):
        content = u"""[{"Name":"python"},{"Name":"ruby"},{"Name":"static"}]"""
        m = Mock(status_code=200, content=content)
        m.json.return_value = json.loads(content)
        get.return_value = m
        request = RequestFactory().post(
            "/",
            {"name": "myepe", "platform": "python"})
        request.session = {}
        post.return_value = Mock(status_code=500, content='Error')

        view = CreateApp()
        view.plans = lambda r: ("small", [("small", "small")])
        view.teams = lambda r: []
        view.pools = lambda r: []

        view.post(request)

        error.assert_called_with(request, u'Error', fail_silently=True)
Beispiel #31
0
class TextPlainView(TemplateView):
    def render_to_response(self, context, **kwargs):
        return super(TextPlainView, self).render_to_response(
            context, content_type='text/plain', **kwargs)

urlpatterns = patterns('',
    url(r'^robots\.txt$', TextPlainView.as_view(template_name='robots.txt')),
    url(r'^favicon\.ico$', RedirectView.as_view(url='/static/img/favicon.ico')),
    url(r'^$', Login.as_view(), name='login'),

    url(r'^login$', Login.as_view(), name='login'),
    url(r'^logout$', Logout.as_view(), name='logout'),
    url(r'^team/$', Team.as_view(), name='team'),
    url(r'^key/$', Key.as_view(), name='token'),
    url(r'^signup$', Signup.as_view(), name='signup'),

    url(r'^apps/$', ListApp.as_view(), name='list-app'),
    url(r'^apps/create/$', CreateApp.as_view(), name='create-app'),
    url(r'^app/run/$', Run.as_view(), name='run'),
    url(r'^app/(?P<app_name>[\w-]+)/$', AppDetail.as_view(), name='detail-app'),
    url(r'^app/(?P<name>[\w-]+)/remove/$', RemoveApp.as_view(), name='remove_app'),
    url(r'^app/(?P<app_name>[\w-]+)/log/$', AppLog.as_view(), name='app_log'),
    url(r'^app/(?P<app_name>[\w-]+)/env/$', AppEnv.as_view(), name='get-env'),
    url(r'^app/(?P<app_name>[\w-]+)/teams/$', AppTeams.as_view(), name='app-teams'),
    url(r'^app/(?P<app_name>[\w-]+)/team/add/$', AppAddTeam.as_view(), name='app-add-team'),
    url(r'^envs/$', "auth.views.env_vars", name='envs'),
)

urlpatterns += staticfiles_urlpatterns()