summaryrefslogtreecommitdiff
path: root/gitlab
diff options
context:
space:
mode:
authorMax Wittig <max.wittig@siemens.com>2019-12-18 12:14:02 +0100
committerMax Wittig <max.wittig@siemens.com>2019-12-18 12:57:02 +0100
commit0952c55a316fc8f68854badd68b4fc57658af9e7 (patch)
treedf29b7e32747df184ff1a5e6ff53800c6ef0dcf9 /gitlab
parente104e213b16ca702f33962d770784f045f36cf10 (diff)
downloadgitlab-0952c55a316fc8f68854badd68b4fc57658af9e7.tar.gz
test: add project snippet tests
Diffstat (limited to 'gitlab')
-rw-r--r--gitlab/tests/objects/__init__.py0
-rw-r--r--gitlab/tests/objects/test_projects.py140
2 files changed, 140 insertions, 0 deletions
diff --git a/gitlab/tests/objects/__init__.py b/gitlab/tests/objects/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gitlab/tests/objects/__init__.py
diff --git a/gitlab/tests/objects/test_projects.py b/gitlab/tests/objects/test_projects.py
new file mode 100644
index 0000000..237a9be
--- /dev/null
+++ b/gitlab/tests/objects/test_projects.py
@@ -0,0 +1,140 @@
+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 TestProjectSnippets(unittest.TestCase):
+ def setUp(self):
+ self.gl = Gitlab(
+ "http://localhost",
+ private_token="private_token",
+ ssl_verify=True,
+ api_version=4,
+ )
+
+ def test_list_project_snippets(self):
+ title = "Example Snippet Title"
+ visibility = "private"
+
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/projects/1/snippets",
+ method="get",
+ )
+ def resp_list_snippet(url, request):
+ content = """[{
+ "title": "%s",
+ "description": "More verbose snippet description",
+ "file_name": "example.txt",
+ "content": "source code with multiple lines",
+ "visibility": "%s"}]""" % (
+ title,
+ visibility,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ with HTTMock(resp_list_snippet):
+ snippets = self.gl.projects.get(1, lazy=True).snippets.list()
+ self.assertEqual(len(snippets), 1)
+ self.assertEqual(snippets[0].title, title)
+ self.assertEqual(snippets[0].visibility, visibility)
+
+ def test_get_project_snippets(self):
+ title = "Example Snippet Title"
+ visibility = "private"
+
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/projects/1/snippets/1",
+ method="get",
+ )
+ def resp_get_snippet(url, request):
+ content = """{
+ "title": "%s",
+ "description": "More verbose snippet description",
+ "file_name": "example.txt",
+ "content": "source code with multiple lines",
+ "visibility": "%s"}""" % (
+ title,
+ visibility,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ with HTTMock(resp_get_snippet):
+ snippet = self.gl.projects.get(1, lazy=True).snippets.get(1)
+ self.assertEqual(snippet.title, title)
+ self.assertEqual(snippet.visibility, visibility)
+
+ def test_create_update_project_snippets(self):
+ title = "Example Snippet Title"
+ visibility = "private"
+
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/projects/1/snippets",
+ method="put",
+ )
+ def resp_update_snippet(url, request):
+ content = """{
+ "title": "%s",
+ "description": "More verbose snippet description",
+ "file_name": "example.txt",
+ "content": "source code with multiple lines",
+ "visibility": "%s"}""" % (
+ title,
+ visibility,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ @urlmatch(
+ scheme="http",
+ netloc="localhost",
+ path="/api/v4/projects/1/snippets",
+ method="post",
+ )
+ def resp_create_snippet(url, request):
+ content = """{
+ "title": "%s",
+ "description": "More verbose snippet description",
+ "file_name": "example.txt",
+ "content": "source code with multiple lines",
+ "visibility": "%s"}""" % (
+ title,
+ visibility,
+ )
+ content = content.encode("utf-8")
+ return response(200, content, headers, None, 25, request)
+
+ with HTTMock(resp_create_snippet, resp_update_snippet):
+ snippet = self.gl.projects.get(1, lazy=True).snippets.create(
+ {
+ "title": title,
+ "file_name": title,
+ "content": title,
+ "visibility": visibility,
+ }
+ )
+ self.assertEqual(snippet.title, title)
+ self.assertEqual(snippet.visibility, visibility)
+ title = "new-title"
+ snippet.title = title
+ snippet.save()
+ self.assertEqual(snippet.title, title)
+ self.assertEqual(snippet.visibility, visibility)