Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Verified Commit c1772a87 authored by Vincent SIMONIN's avatar Vincent SIMONIN
Browse files

Source Mapping must be unique

parent 951db71c
No related branches found
No related tags found
1 merge request!23Source Mapping must be unique
Pipeline #71956 passed
......@@ -5,7 +5,7 @@ class NetBoxRpsConfig(PluginConfig):
name = 'netbox_rps_plugin'
verbose_name = 'NetBox RPS'
description = 'A Netbox plugin to add RPS resources'
version = '0.8.3'
version = '0.8.4'
author = "Vincent Simonin"
author_email = "vincent.simonin@ext.ec.europa.eu"
base_url = 'rps'
......
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('netbox_rps_plugin', '0004_testingpage_nullable')
]
operations = [
migrations.AlterField(
model_name='mapping',
name='source',
field=models.CharField(null=False, blank=False, max_length=120, unique=True),
),
]
......@@ -36,6 +36,7 @@ class Mapping(NetBoxModel):
blank=False,
verbose_name='Source',
validators=[URLValidator(message='It must be a url')],
unique=True
)
target = models.CharField(
max_length=120,
......
......@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
setup(
name='netbox_rps_plugin',
version='0.8.3',
version='0.8.4',
description='A Netbox plugin to add RPS resources',
install_requires=[],
packages=find_packages(),
......
import unittest
import requests
class TestMappingCreation(unittest.TestCase):
def test_that_mapping_is_created(self):
r = requests.post(
url='http://localhost:8000/api/plugins/rps/mapping/',
json={
"source": "https://truc6.com/api",
"target": "http://10.10.10.10:1886/api",
"authentication": "none",
"testingpage": None
},
headers={
"Authorization": "Token 52121418bdd7411f6a0ee99b41561099810a8785"
}
)
self.assertEqual(r.status_code, 201)
if __name__ == '__main__':
unittest.main()
import unittest
import requests
import json
from pprint import pp
class TestMappingUnique(unittest.TestCase):
mappingId=None
def test_that_mapping_is_unique(self):
r = requests.post(
url='http://localhost:8000/api/plugins/rps/mapping/',
json={
"source": "https://truc7.com/api",
"target": "http://10.10.10.10:1886/api",
"authentication": "none",
"testingpage": None
},
headers={
"Authorization": "Token 52121418bdd7411f6a0ee99b41561099810a8785"
}
)
self.assertEqual(r.status_code, 201)
self.mappingId = json.loads(r.content)['id'];
r = requests.post(
url='http://localhost:8000/api/plugins/rps/mapping/',
json={
"source": "https://truc7.com/api",
"target": "http://10.10.10.10:1886/api",
"authentication": "none",
"testingpage": None
},
headers={
"Authorization": "Token 52121418bdd7411f6a0ee99b41561099810a8785"
}
)
self.assertEqual(r.status_code, 400)
self.assertEqual(r.content, b'{"source":["mapping with this Source already exists."]}')
def tearDown(self) -> None:
requests.delete(
url='http://localhost:8000/api/plugins/rps/mapping/',
json=[{
"id": self.mappingId
}],
headers={
"Authorization": "Token 52121418bdd7411f6a0ee99b41561099810a8785"
}
)
if __name__ == '__main__':
unittest.main()
import unittest
import requests
class TestUnauthenticatedMappings(unittest.TestCase):
def test_mappings_get_unauthenticated(self):
r = requests.get('http://localhost:8000/api/plugins/rps/')
self.assertEqual(r.status_code, 403)
def test_mappings_get_unauthenticated(self):
r = requests.get('http://localhost:8000/api/plugins/rps/mapping/')
......@@ -29,11 +23,6 @@ class TestUnauthenticatedMappings(unittest.TestCase):
self.assertEqual(r.status_code, 403)
def test_mappings_put_unauthenticated(self):
r = requests.put('http://localhost:8000/api/plugins/rps/mapping')
self.assertEqual(r.status_code, 403)
if __name__ == '__main__':
unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment