Skip to content

Commit

Permalink
test: add project snippet tests
Browse files Browse the repository at this point in the history
  • Loading branch information
max-wittig committed Dec 18, 2019
1 parent e104e21 commit 0952c55
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 0 deletions.
Empty file.
140 changes: 140 additions & 0 deletions 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)

0 comments on commit 0952c55

Please sign in to comment.