def __init__(self, warrior, **kwargs):
self.warrior = warrior
+ # Check that user is not able to set read-only value in __init__
+ for key in kwargs.keys():
+ if key in self.read_only_fields:
+ raise RuntimeError('Field \'%s\' is read-only' % key)
+
# We serialize the data in kwargs so that users of the library
# do not have to pass different data formats via __setitem__ and
# __init__ methods, that would be confusing
if self.warrior.version < VERSION_2_4_0:
return self._data['description']
else:
- return "description:{0}".format(self._data['description'] or '')
+ return "description:'{0}'".format(self._data['description'] or '')
def delete(self):
if not self.saved:
if self.deleted:
raise Task.DeletedTask("Task was already deleted")
- self.warrior.execute_command([self['uuid'], 'delete'], config_override={
- 'confirmation': 'no',
- })
+ self.warrior.execute_command([self['uuid'], 'delete'])
# Refresh the status again, so that we have updated info stored
self.refresh(only_fields=['status'])
def add_field(field):
# Add the output of format_field method to args list (defaults to
# field:value)
- format_default = lambda k: '{0}:{1}'.format(k, self._data[k] or '')
+ format_default = lambda k: "{0}:'{1}'".format(k, self._data[k] or '')
format_func = getattr(self, 'format_{0}'.format(field),
lambda: format_default(field))
args.append(format_func())
os.makedirs(data_location)
self.config = {
'data.location': os.path.expanduser(data_location),
+ 'confirmation': 'no',
}
self.tasks = TaskQuerySet(self)
self.version = self._get_version()
})
def undo(self):
- self.execute_command(['undo'], config_override={
- 'confirmation': 'no',
- })
+ self.execute_command(['undo'])