Skip to content

Commit 56b2624

Browse files
authored
fix: fixing bugs in clone_task function (influxdata#217)
* fix: fixing bugs in clone_task function
1 parent 5e56938 commit 56b2624

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
### Bug Fixes
77
1. [#206](https://github.com/influxdata/influxdb-client-python/pull/207): Use default (system) certificates instead of Mozilla's root certificates (certifi.where())
8+
1. [#217](https://github.com/influxdata/influxdb-client-python/pull/217): Fixed clone_task function
89

910
### API
1011
1. [#209](https://github.com/influxdata/influxdb-client-python/pull/209): Allow setting shard-group durations for buckets via API

influxdb_client/client/tasks_api.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,13 @@ def update_task_request(self, task_id, task_update_request: TaskUpdateRequest) -
9898

9999
def clone_task(self, task: Task) -> Task:
100100
"""Clone a task."""
101-
cloned = Task(name=task.name, org_id=task.org_id, org=task.org, flux=task.flux, status="active")
101+
cloned = Task(id=0, name=task.name, org_id=task.org_id, org=task.org, flux=task.flux, status="active")
102102

103103
created = self.create_task(cloned)
104-
labels = self.get_labels(task)
105-
for label in labels:
106-
self.add_label(label, created.id)
104+
if task.id:
105+
labels = self.get_labels(task.id)
106+
for label in labels.labels:
107+
self.add_label(label.id, created.id)
107108
return created
108109

109110
def get_labels(self, task_id):

tests/test_TasksApi.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ def test_create_task_with_offset(self):
112112
def test_create_task_every(self):
113113
task_name = self.generate_name("it_task")
114114
task = self.tasks_api.create_task_every(task_name, TASK_FLUX, "1h", self.organization)
115-
print(task)
116115

117116
self.assertIsNotNone(task)
118117
self.assertGreater(len(task.id), 1)
@@ -391,3 +390,22 @@ def test_get_run(self):
391390
self.assertIsNotNone(run_by_id)
392391
self.assertEqual(run.id, run_by_id.id)
393392

393+
def test_clone(self):
394+
task = self.tasks_api.create_task_every(self.generate_name("it_task"), TASK_FLUX, "1h", self.organization)
395+
label = self.labels_api.create_label(self.generate_name("it_task"), self.organization.id, {
396+
"color": "green",
397+
"location": "west"
398+
})
399+
self.tasks_api.add_label(label.id, task.id)
400+
cloned = self.tasks_api.clone_task(task)
401+
self.assertNotEqual(task.id, cloned.id)
402+
self.assertEqual(task.flux, cloned.flux)
403+
labels = self.tasks_api.get_labels(cloned.id).labels
404+
self.assertEqual(1, len(labels))
405+
self.assertEqual(label.id, labels[0].id)
406+
407+
def test_clone_new(self):
408+
task = self.tasks_api._create_task(self.generate_name("it_task"), TASK_FLUX, "1h", None, self.organization.id)
409+
cloned = self.tasks_api.clone_task(task)
410+
self.assertNotEqual(task.id, cloned.id)
411+
self.assertEqual(task.flux, cloned.flux)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy