def test_value_multi(self):
		op = Assignments()
		op1 = Set(first='foo')
		op2 = Set(last='bar')
		op.add(op1, op2)
		self.assertEquals(op.cql, '{}, {}'.format(op1.cql, op2.cql))
		self.assertEquals(op.values, op1.values + op2.values)
Exemple #2
0
 def test_value_multi(self):
     op = Assignments()
     op1 = Set(first='foo')
     op2 = Set(last='bar')
     op.add(op1, op2)
     self.assertEquals(op.cql, '{}, {}'.format(op1.cql, op2.cql))
     self.assertEquals(op.values, op1.values + op2.values)
	def get_query(self, assignment, condition, using=None):
		query = 'UPDATE {}'.format(self.column_family)
		if using:
			query = '{} {}'.format(query, using.cql)
		assignments = Assignments()
		assignments.add(assignment)
		where = Where(condition)
		return '{} SET {} WHERE {}'.format(query, assignments.cql, where.cql)
Exemple #4
0
 def get_query(self, assignment, condition, using=None):
     query = 'UPDATE {}'.format(self.column_family)
     if using:
         query = '{} {}'.format(query, using.cql)
     assignments = Assignments()
     assignments.add(assignment)
     where = Where(condition)
     return '{} SET {} WHERE {}'.format(query, assignments.cql, where.cql)
Exemple #5
0
class Update(Statement):

	def __init__(self, column_family, keyspace=None):
		Statement.__init__(self, column_family, keyspace)
		self.assignments = Assignments()
		self.conditions = None
		self.options = None

	def using(self, **kwargs):
		self.options = Using(**kwargs)
		return self

	def set(self, **kwargs):
		self.assignments.add(Set(**kwargs))
		return self

	def set_at(self, name, key, value):
		self.assignments.add(SetAt(name, key, value))
		return self

	def add(self, name, value):
		self.assignments.add(Add(name, value))
		return self

	def subtract(self, name, value):
		self.assignments.add(Subtract(name, value))
		return self

	def where(self, *args):
		self.conditions = Where(*args)
		return self

	@property
	def cql(self):
		query = 'UPDATE {}'.format(self.path)
		if self.options:
			query = '{} {}'.format(query, self.options.cql)
		query = '{} SET {} WHERE {}'.format(query, self.assignments.cql, self.conditions.cql)
		return query

	@property
	def args(self):
		args = self.options.values if self.options else []
		args.extend(self.assignments.values)
		args.extend(self.conditions.values)
		return args

	def validate(self):
		self.assignments.validate()
		if self.conditions is None:
			raise ValidationError('conditions: {}'.format(self.conditions))
Exemple #6
0
 def test_value_single(self):
     op = Assignments()
     kwargs = {'name': 'bar'}
     op.add(Set(**kwargs))
     self.assertEquals(op.cql, '{}=%s'.format(*kwargs.keys()))
     self.assertEquals(op.values, kwargs.values())
Exemple #7
0
 def test_invalid_instance_value(self):
     op = Assignments()
     op.add(Set(name='foo'))
     op.add(eq('name', 'bar'))
     self.assertRaises(ValidationError, op.validate)
Exemple #8
0
 def test_none_value(self):
     op = Assignments()
     op.add(Set(name='foo'))
     op.add(None)
     self.assertRaises(ValidationError, op.validate)
Exemple #9
0
 def test_no_values(self):
     op = Assignments()
     self.assertRaises(ValidationError, op.validate)
	def test_value_single(self):
		op = Assignments()
		kwargs = {'name': 'bar'}
		op.add(Set(**kwargs))
		self.assertEquals(op.cql, '{}=%s'.format(*kwargs.keys()))
		self.assertEquals(op.values, kwargs.values())
	def test_invalid_instance_value(self):
		op = Assignments()
		op.add(Set(name='foo'))
		op.add(eq('name', 'bar'))
		self.assertRaises(ValidationError, op.validate)
	def test_none_value(self):
		op = Assignments()
		op.add(Set(name='foo'))
		op.add(None)
		self.assertRaises(ValidationError, op.validate)
Exemple #13
0
	def __init__(self, column_family, keyspace=None):
		Statement.__init__(self, column_family, keyspace)
		self.assignments = Assignments()
		self.conditions = None
		self.options = None