Fix some tests
parent
02400be2a1
commit
edcb186871
|
@ -30,6 +30,7 @@ from ..exceptions import ActionSyntaxException
|
||||||
from urllib.parse import parse_qs
|
from urllib.parse import parse_qs
|
||||||
from ipware.ip import get_real_ip
|
from ipware.ip import get_real_ip
|
||||||
|
|
||||||
|
|
||||||
class BitBucketViewSet(BaseWebhookApiViewSet):
|
class BitBucketViewSet(BaseWebhookApiViewSet):
|
||||||
event_hook_classes = {
|
event_hook_classes = {
|
||||||
"push": event_hooks.PushEventHook,
|
"push": event_hooks.PushEventHook,
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
from taiga.base.api.viewsets import GenericViewSet
|
from taiga.base.api.viewsets import GenericViewSet
|
||||||
from taiga.base import exceptions as exc
|
from taiga.base import exceptions as exc
|
||||||
|
@ -25,6 +26,8 @@ from taiga.hooks.api import BaseWebhookApiViewSet
|
||||||
|
|
||||||
from . import event_hooks
|
from . import event_hooks
|
||||||
|
|
||||||
|
from ipware.ip import get_real_ip
|
||||||
|
|
||||||
|
|
||||||
class GitLabViewSet(BaseWebhookApiViewSet):
|
class GitLabViewSet(BaseWebhookApiViewSet):
|
||||||
event_hook_classes = {
|
event_hook_classes = {
|
||||||
|
@ -48,9 +51,9 @@ class GitLabViewSet(BaseWebhookApiViewSet):
|
||||||
if not project_secret:
|
if not project_secret:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
valid_origin_ips = project.modules_config.config.get("bitbucket", {}).get("valid_origin_ips", settings.GITLAB_VALID_ORIGIN_IPS)
|
valid_origin_ips = project.modules_config.config.get("gitlab", {}).get("valid_origin_ips", settings.GITLAB_VALID_ORIGIN_IPS)
|
||||||
origin_ip = get_real_ip(request)
|
origin_ip = get_real_ip(request)
|
||||||
if not origin_ip or not origin_ip in valid_origin_ips:
|
if not origin_ip or origin_ip not in valid_origin_ips:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return project_secret == secret_key
|
return project_secret == secret_key
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
from taiga.users.models import User
|
from taiga.users.models import User
|
||||||
from taiga.base.utils.urls import get_absolute_url
|
from taiga.base.utils.urls import get_absolute_url
|
||||||
|
@ -28,7 +29,7 @@ def get_or_generate_config(project):
|
||||||
g_config = project.modules_config.config["gitlab"]
|
g_config = project.modules_config.config["gitlab"]
|
||||||
else:
|
else:
|
||||||
g_config = {
|
g_config = {
|
||||||
"secret": uuid.uuid4().hex
|
"secret": uuid.uuid4().hex,
|
||||||
"valid_origin_ips": settings.GITLAB_VALID_ORIGIN_IPS,
|
"valid_origin_ips": settings.GITLAB_VALID_ORIGIN_IPS,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,14 +42,18 @@ def test_ok_signature(client):
|
||||||
project=f.ProjectFactory()
|
project=f.ProjectFactory()
|
||||||
f.ProjectModulesConfigFactory(project=project, config={
|
f.ProjectModulesConfigFactory(project=project, config={
|
||||||
"gitlab": {
|
"gitlab": {
|
||||||
"secret": "tpnIwJDz4e"
|
"secret": "tpnIwJDz4e",
|
||||||
|
"valid_origin_ips": ["111.111.111.111"],
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
url = reverse("gitlab-hook-list")
|
url = reverse("gitlab-hook-list")
|
||||||
url = "{}?project={}&key={}".format(url, project.id, "tpnIwJDz4e")
|
url = "{}?project={}&key={}".format(url, project.id, "tpnIwJDz4e")
|
||||||
data = {"test:": "data"}
|
data = {"test:": "data"}
|
||||||
response = client.post(url, json.dumps(data), content_type="application/json")
|
response = client.post(url,
|
||||||
|
json.dumps(data),
|
||||||
|
content_type="application/json",
|
||||||
|
REMOTE_ADDR="111.111.111.111")
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue