forked from pulp/pulp_rpm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Depend on pulpcore directly instead of pulpcore-plugin
Required PR: pulp/pulpcore#347 re: #5580 https://pulp.plan.io/issues/5580
- Loading branch information
Showing
8 changed files
with
182 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Depend on pulpcore, directly, instead of pulpcore-plugin. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# pulp-rpm | ||
|
||
A Pulp plugin to support hosting your own rpm. | ||
|
||
For more information, please see the [documentation](docs/index.rst) or the [Pulp project page](https://pulpproject.org/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
""" | ||
Check `Plugin Writer's Guide`_ for more details. | ||
.. _Plugin Writer's Guide: | ||
http://docs.pulpproject.org/en/3.0/nightly/plugins/plugin-writer/index.html | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# coding=utf-8 | ||
"""Tests that CRUD content_unit publishers.""" | ||
import unittest | ||
|
||
from requests.exceptions import HTTPError | ||
|
||
from pulp_smash import api, config | ||
from pulp_smash.pulp3.constants import REPO_PATH | ||
from pulp_smash.pulp3.utils import gen_repo | ||
|
||
from pulp_rpm.tests.functional.constants import RPM_PUBLISHER_PATH | ||
from pulp_rpm.tests.functional.utils import gen_rpm_publisher, skip_if | ||
from pulp_rpm.tests.functional.utils import set_up_module as setUpModule # noqa:F401 | ||
|
||
|
||
class CRUDPublishersTestCase(unittest.TestCase): | ||
"""CRUD publishers.""" | ||
|
||
@classmethod | ||
def setUpClass(cls): | ||
"""Create class-wide variables. | ||
In order to create a publisher a repository has to be created first. | ||
""" | ||
cls.cfg = config.get_config() | ||
cls.client = api.Client(cls.cfg, api.json_handler) | ||
cls.publisher = {} | ||
cls.repo = cls.client.post(REPO_PATH, gen_repo()) | ||
|
||
@classmethod | ||
def tearDownClass(cls): | ||
"""Clean class-wide variable.""" | ||
cls.client.delete(cls.repo["pulp_href"]) | ||
|
||
def test_01_create_publisher(self): | ||
"""Create a publisher.""" | ||
body = gen_rpm_publisher() | ||
type(self).publisher = self.client.post(RPM_PUBLISHER_PATH, body) | ||
for key, val in body.items(): | ||
with self.subTest(key=key): | ||
self.assertEqual(self.publisher[key], val) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_02_create_same_name(self): | ||
"""Try to create a second publisher with an identical name. | ||
See: `Pulp Smash #1055 | ||
<https://github.com/PulpQE/pulp-smash/issues/1055>`_. | ||
""" | ||
body = gen_rpm_publisher() | ||
body["name"] = self.publisher["name"] | ||
with self.assertRaises(HTTPError): | ||
self.client.post(RPM_PUBLISHER_PATH, body) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_02_read_publisher(self): | ||
"""Read a publisher by its href.""" | ||
publisher = self.client.get(self.publisher["pulp_href"]) | ||
for key, val in self.publisher.items(): | ||
with self.subTest(key=key): | ||
self.assertEqual(publisher[key], val) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_02_read_publishers(self): | ||
"""Read a publisher by its name.""" | ||
page = self.client.get(RPM_PUBLISHER_PATH, params={"name": self.publisher["name"]}) | ||
self.assertEqual(len(page["results"]), 1) | ||
for key, val in self.publisher.items(): | ||
with self.subTest(key=key): | ||
self.assertEqual(page["results"][0][key], val) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_03_partially_update(self): | ||
"""Update a publisher using HTTP PATCH.""" | ||
body = gen_rpm_publisher() | ||
self.client.patch(self.publisher["pulp_href"], body) | ||
type(self).publisher = self.client.get(self.publisher["pulp_href"]) | ||
for key, val in body.items(): | ||
with self.subTest(key=key): | ||
self.assertEqual(self.publisher[key], val) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_04_fully_update(self): | ||
"""Update a publisher using HTTP PUT.""" | ||
body = gen_rpm_publisher() | ||
self.client.put(self.publisher["pulp_href"], body) | ||
type(self).publisher = self.client.get(self.publisher["pulp_href"]) | ||
for key, val in body.items(): | ||
with self.subTest(key=key): | ||
self.assertEqual(self.publisher[key], val) | ||
|
||
@skip_if(bool, "publisher", False) | ||
def test_05_delete(self): | ||
"""Delete a publisher.""" | ||
self.client.delete(self.publisher["pulp_href"]) | ||
with self.assertRaises(HTTPError): | ||
self.client.get(self.publisher["pulp_href"]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import unittest | ||
from django.test import TestCase | ||
|
||
from pulp_rpm.app.serializers import RpmContentSerializer | ||
from pulp_rpm.app.models import RpmContent | ||
|
||
from pulpcore.plugin.models import Artifact | ||
|
||
|
||
# Fill data with sufficient information to create RpmContent | ||
# Provide sufficient parameters to create the RpmContent object | ||
# Depending on the base class of the serializer, provide either "_artifact" or "_artifacts" | ||
@unittest.skip("FIXME: plugin writer action required") | ||
class TestRpmContentSerializer(TestCase): | ||
"""Test RpmContentSerializer.""" | ||
|
||
def setUp(self): | ||
"""Set up the RpmContentSerializer tests.""" | ||
self.artifact = Artifact.objects.create( | ||
md5="ec0df26316b1deb465d2d18af7b600f5", | ||
sha1="cf6121b0425c2f2e3a2fcfe6f402d59730eb5661", | ||
sha224="9a6297eb28d91fad5277c0833856031d0e940432ad807658bd2b60f4", | ||
sha256="c8ddb3dcf8da48278d57b0b94486832c66a8835316ccf7ca39e143cbfeb9184f", | ||
sha384="53a8a0cebcb7780ed7624790c9d9a4d09ba74b47270d397f5ed7bc1c46777a0fbe362aaf2bbe7f0966a350a12d76e28d", # noqa | ||
sha512="a94a65f19b864d184a2a5e07fa29766f08c6d49b6f624b3dd3a36a98267b9137d9c35040b3e105448a869c23c2aec04c9e064e3555295c1b8de6515eed4da27d", # noqa | ||
size=1024, | ||
) | ||
|
||
def test_valid_data(self): | ||
"""Test that the RpmContentSerializer accepts valid data.""" | ||
data = {"_artifact": "/pulp/api/v3/artifacts/{}/".format(self.artifact.pk)} | ||
serializer = RpmContentSerializer(data=data) | ||
self.assertTrue(serializer.is_valid()) | ||
|
||
def test_duplicate_data(self): | ||
"""Test that the RpmContentSerializer does not accept data.""" | ||
RpmContent.objects.create(artifact=artifact) | ||
data = {"_artifact": "/pulp/api/v3/artifacts/{}/".format(self.artifact.pk)} | ||
serializer = RpmContentSerializer(data=data) | ||
self.assertFalse(serializer.is_valid()) |