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_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_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_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"))
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'))
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']} )
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)
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)
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']})
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"))
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'))
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)
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()