Skip to content

Commit fffbae7

Browse files
russoratrhajek
authored andcommitted
fix: fixing bugs in clone_task function (#217)
* fix: fixing bugs in clone_task function
1 parent 253c949 commit fffbae7

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

CHANGELOG.md

+1
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

+5-4
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

+19-1
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)