summaryrefslogtreecommitdiff
path: root/gitlab/tests/objects/test_application.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/tests/objects/test_application.py')
-rw-r--r--gitlab/tests/objects/test_application.py120
1 files changed, 120 insertions, 0 deletions
diff --git a/gitlab/tests/objects/test_application.py b/gitlab/tests/objects/test_application.py
new file mode 100644
index 0000000..50ca1ad
--- /dev/null
+++ b/gitlab/tests/objects/test_application.py
@@ -0,0 +1,120 @@
+import unittest
+import gitlab
+import os
+import pickle
+import tempfile
+import json
+import unittest
+import requests
+from gitlab import * # noqa
+from gitlab.v4.objects import * # noqa
+from httmock import HTTMock, urlmatch, response # noqa
+
+
+headers = {"content-type": "application/json"}
+
+
+class TestApplicationAppearance(unittest.TestCase):
+ def setUp(self):
+ self.gl = Gitlab(
+ "http://localhost",
+ private_token="private_token",
+ ssl_verify=True,
+ api_version="4",
+ )
+ self.title = "GitLab Test Instance"
+ self.new_title = "new-title"
+ self.description = "gitlab-test.example.com"
+ self.new_description = "new-description"
+
+ def test_get_update_appearance(self):
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/application/appearance",
+ method="get",
+ )
+ def resp_get_appearance(url, request):
+ content = """{
+ "title": "%s",
+ "description": "%s",
+ "logo": "/uploads/-/system/appearance/logo/1/logo.png",
+ "header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
+ "favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
+ "new_project_guidelines": "Please read the FAQs for help.",
+ "header_message": "",
+ "footer_message": "",
+ "message_background_color": "#e75e40",
+ "message_font_color": "#ffffff",
+ "email_header_and_footer_enabled": false}""" % (
+ self.title,
+ self.description,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/application/appearance",
+ method="put",
+ )
+ def resp_update_appearance(url, request):
+ content = """{
+ "title": "%s",
+ "description": "%s",
+ "logo": "/uploads/-/system/appearance/logo/1/logo.png",
+ "header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
+ "favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
+ "new_project_guidelines": "Please read the FAQs for help.",
+ "header_message": "",
+ "footer_message": "",
+ "message_background_color": "#e75e40",
+ "message_font_color": "#ffffff",
+ "email_header_and_footer_enabled": false}""" % (
+ self.new_title,
+ self.new_description,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ with HTTMock(resp_get_appearance), HTTMock(resp_update_appearance):
+ appearance = self.gl.appearance.get()
+ self.assertEqual(appearance.title, self.title)
+ self.assertEqual(appearance.description, self.description)
+ appearance.title = self.new_title
+ appearance.description = self.new_description
+ appearance.save()
+ self.assertEqual(appearance.title, self.new_title)
+ self.assertEqual(appearance.description, self.new_description)
+
+ def test_update_appearance(self):
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/application/appearance",
+ method="put",
+ )
+ def resp_update_appearance(url, request):
+ content = """{
+ "title": "%s",
+ "description": "%s",
+ "logo": "/uploads/-/system/appearance/logo/1/logo.png",
+ "header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
+ "favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
+ "new_project_guidelines": "Please read the FAQs for help.",
+ "header_message": "",
+ "footer_message": "",
+ "message_background_color": "#e75e40",
+ "message_font_color": "#ffffff",
+ "email_header_and_footer_enabled": false}""" % (
+ self.new_title,
+ self.new_description,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ with HTTMock(resp_update_appearance):
+ resp = self.gl.appearance.update(
+ title=self.new_title, description=self.new_description
+ )