| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,3 +39,10 @@ Update a topic:: | |||
| 39 | 39 | ||
| 40 | 40 | # or | |
| 41 | 41 | gl.topics.update(topic_id, {"description": "My new topic"}) | |
| 42 | + | ||
| 43 | + Delete a topic:: | ||
| 44 | + | ||
| 45 | + topic.delete() | ||
| 46 | + | ||
| 47 | + # or | ||
| 48 | + gl.topics.delete(topic_id) | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,19 +2,19 @@ | |||
| 2 | 2 | ||
| 3 | 3 | from gitlab import types | |
| 4 | 4 | from gitlab.base import RequiredOptional, RESTManager, RESTObject | |
| 5 | - from gitlab.mixins import CreateMixin, RetrieveMixin, SaveMixin, UpdateMixin | ||
| 5 | + from gitlab.mixins import CRUDMixin, ObjectDeleteMixin, SaveMixin | ||
| 6 | 6 | ||
| 7 | 7 | __all__ = [ | |
| 8 | 8 | "Topic", | |
| 9 | 9 | "TopicManager", | |
| 10 | 10 | ] | |
| 11 | 11 | ||
| 12 | 12 | ||
| 13 | - class Topic(SaveMixin, RESTObject): | ||
| 13 | + class Topic(SaveMixin, ObjectDeleteMixin, RESTObject): | ||
| 14 | 14 | pass | |
| 15 | 15 | ||
| 16 | 16 | ||
| 17 | - class TopicManager(CreateMixin, RetrieveMixin, UpdateMixin, RESTManager): | ||
| 17 | + class TopicManager(CRUDMixin, RESTManager): | ||
| 18 | 18 | _path = "/topics" | |
| 19 | 19 | _obj_cls = Topic | |
| 20 | 20 | _create_attrs = RequiredOptional( | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,3 +16,6 @@ def test_topics(gl): | |||
| 16 | 16 | ||
| 17 | 17 | updated_topic = gl.topics.get(topic.id) | |
| 18 | 18 | assert updated_topic.description == topic.description | |
| 19 | + | ||
| 20 | + topic.delete() | ||
| 21 | + assert not gl.topics.list() | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,6 +39,8 @@ def reset_gitlab(gl): | |||
| 39 | 39 | ) | |
| 40 | 40 | deploy_token.delete() | |
| 41 | 41 | group.delete() | |
| 42 | + for topic in gl.topics.list(): | ||
| 43 | + topic.delete() | ||
| 42 | 44 | for variable in gl.variables.list(): | |
| 43 | 45 | logging.info(f"Marking for deletion variable: {variable.key!r}") | |
| 44 | 46 | variable.delete() | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -75,6 +75,19 @@ def resp_update_topic(): | |||
| 75 | 75 | yield rsps | |
| 76 | 76 | ||
| 77 | 77 | ||
| 78 | + @pytest.fixture | ||
| 79 | + def resp_delete_topic(no_content): | ||
| 80 | + with responses.RequestsMock() as rsps: | ||
| 81 | + rsps.add( | ||
| 82 | + method=responses.DELETE, | ||
| 83 | + url=topic_url, | ||
| 84 | + json=no_content, | ||
| 85 | + content_type="application/json", | ||
| 86 | + status=204, | ||
| 87 | + ) | ||
| 88 | + yield rsps | ||
| 89 | + | ||
| 90 | + | ||
| 78 | 91 | def test_list_topics(gl, resp_list_topics): | |
| 79 | 92 | topics = gl.topics.list() | |
| 80 | 93 | assert isinstance(topics, list) | |
@@ -99,3 +112,8 @@ def test_update_topic(gl, resp_update_topic): | |||
| 99 | 112 | topic.name = new_name | |
| 100 | 113 | topic.save() | |
| 101 | 114 | assert topic.name == new_name | |
| 115 | + | ||
| 116 | + | ||
| 117 | + def test_delete_topic(gl, resp_delete_topic): | ||
| 118 | + topic = gl.topics.get(1, lazy=True) | ||
| 119 | + topic.delete() | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments