Beispiel #1
0
 def test_two_columns(self):
   sql, column_names = sql_builder.build_values_clause(
       columns=['col_a', 'col_b'], bind_vars=dict(col_a=1, col_b=2))
   self.assertEqual(sql, '%(col_a)s, %(col_b)s')
   self.assertEqual(column_names, ['col_a', 'col_b'])
   sql, column_names = sql_builder.build_values_clause(
       columns=['col_a', 'col_b'], bind_vars=dict(col_a=1))
   self.assertEqual(sql, '%(col_a)s')
   self.assertEqual(column_names, ['col_a'])
 def test_two_columns(self):
     sql, column_names = sql_builder.build_values_clause(
         columns=['col_a', 'col_b'], bind_vars=dict(col_a=1, col_b=2))
     self.assertEqual(sql, '%(col_a)s, %(col_b)s')
     self.assertEqual(column_names, ['col_a', 'col_b'])
     sql, column_names = sql_builder.build_values_clause(
         columns=['col_a', 'col_b'], bind_vars=dict(col_a=1))
     self.assertEqual(sql, '%(col_a)s')
     self.assertEqual(column_names, ['col_a'])
Beispiel #3
0
 def test_two_columns(self):
     sql, column_names = sql_builder.build_values_clause(
         columns=["col_a", "col_b"], bind_vars=dict(col_a=1, col_b=2)
     )
     self.assertEqual(sql, "%(col_a)s, %(col_b)s")
     self.assertEqual(column_names, ["col_a", "col_b"])
     sql, column_names = sql_builder.build_values_clause(columns=["col_a", "col_b"], bind_vars=dict(col_a=1))
     self.assertEqual(sql, "%(col_a)s")
     self.assertEqual(column_names, ["col_a"])
Beispiel #4
0
 def test_with_insert_value_expr(self):
     timestamp = sql_builder.RawInsertValueExpr("FROM_UNIXTIME(%(col_b_1)s)", col_b_1=1234567890)
     bind_vars = dict(col_a=1, col_b=timestamp)
     sql, column_names = sql_builder.build_values_clause(columns=["col_a", "col_b"], bind_vars=bind_vars)
     self.assertEqual(sql, "%(col_a)s, %(col_b)s")
     self.assertEqual(column_names, ["col_a", "col_b"])
     self.assertEqual(sorted(bind_vars), ["col_a", "col_b", "col_b_1"])
     self.assertEqual(bind_vars["col_a"], 1)
     self.assertEqual(bind_vars["col_b_1"], 1234567890)
 def test_with_insert_expr(self):
     timestamp = sql_builder.RawSQLInsertExpr('FROM_UNIXTIME(%(col_b_1)s)',
                                              col_b_1=1234567890)
     bind_vars = dict(col_a=1, col_b=timestamp)
     sql, column_names = sql_builder.build_values_clause(
         columns=['col_a', 'col_b'], bind_vars=bind_vars)
     self.assertEqual(sql, '%(col_a)s, %(col_b)s')
     self.assertEqual(column_names, ['col_a', 'col_b'])
     self.assertEqual(sorted(bind_vars), ['col_a', 'col_b', 'col_b_1'])
     self.assertEqual(bind_vars['col_a'], 1)
     self.assertEqual(bind_vars['col_b_1'], 1234567890)
Beispiel #6
0
 def test_with_insert_expr(self):
   timestamp = sql_builder.RawSQLInsertExpr(
       'FROM_UNIXTIME(%(col_b_1)s)', col_b_1=1234567890)
   bind_vars = dict(col_a=1, col_b=timestamp)
   sql, column_names = sql_builder.build_values_clause(
       columns=['col_a', 'col_b'], bind_vars=bind_vars)
   self.assertEqual(sql, '%(col_a)s, %(col_b)s')
   self.assertEqual(column_names, ['col_a', 'col_b'])
   self.assertEqual(sorted(bind_vars), ['col_a', 'col_b', 'col_b_1'])
   self.assertEqual(bind_vars['col_a'], 1)
   self.assertEqual(bind_vars['col_b_1'], 1234567890)
Beispiel #7
0
 def test_with_time_created_and_time_updated(self):
     """Check time_created and time_updated are added as needed."""
     bind_vars = dict(time_created=1, col_b=2)
     sql, column_names = sql_builder.build_values_clause(columns=["time_created", "col_b"], bind_vars=bind_vars)
     self.assertEqual(sql, "%(time_created)s, %(col_b)s")
     self.assertEqual(column_names, ["time_created", "col_b"])
     self.assertEqual(bind_vars["time_created"], 1)
     bind_vars = dict(col_b=2)
     sql, column_names = sql_builder.build_values_clause(columns=["time_created", "col_b"], bind_vars=bind_vars)
     self.assertEqual(sql, "%(time_created)s, %(col_b)s")
     self.assertEqual(column_names, ["time_created", "col_b"])
     self.assertIn("time_created", bind_vars)
     bind_vars = dict()
     sql, column_names = sql_builder.build_values_clause(
         columns=["time_created", "time_updated"], bind_vars=bind_vars
     )
     self.assertEqual(sql, "%(time_created)s, %(time_updated)s")
     self.assertEqual(column_names, ["time_created", "time_updated"])
     self.assertIn("time_created", bind_vars)
     self.assertIn("time_updated", bind_vars)
 def test_with_time_created_and_time_updated(self):
     """Check time_created and time_updated are added as needed."""
     bind_vars = dict(time_created=1, col_b=2)
     sql, column_names = sql_builder.build_values_clause(
         columns=['time_created', 'col_b'], bind_vars=bind_vars)
     self.assertEqual(sql, '%(time_created)s, %(col_b)s')
     self.assertEqual(column_names, ['time_created', 'col_b'])
     self.assertEqual(bind_vars['time_created'], 1)
     bind_vars = dict(col_b=2)
     sql, column_names = sql_builder.build_values_clause(
         columns=['time_created', 'col_b'], bind_vars=bind_vars)
     self.assertEqual(sql, '%(time_created)s, %(col_b)s')
     self.assertEqual(column_names, ['time_created', 'col_b'])
     self.assertIn('time_created', bind_vars)
     bind_vars = dict()
     sql, column_names = sql_builder.build_values_clause(
         columns=['time_created', 'time_updated'], bind_vars=bind_vars)
     self.assertEqual(sql, '%(time_created)s, %(time_updated)s')
     self.assertEqual(column_names, ['time_created', 'time_updated'])
     self.assertIn('time_created', bind_vars)
     self.assertIn('time_updated', bind_vars)
Beispiel #9
0
 def test_with_time_created_and_time_updated(self):
   """Check time_created and time_updated are added as needed."""
   bind_vars = dict(time_created=1, col_b=2)
   sql, column_names = sql_builder.build_values_clause(
       columns=['time_created', 'col_b'], bind_vars=bind_vars)
   self.assertEqual(sql, '%(time_created)s, %(col_b)s')
   self.assertEqual(column_names, ['time_created', 'col_b'])
   self.assertEqual(bind_vars['time_created'], 1)
   bind_vars = dict(col_b=2)
   sql, column_names = sql_builder.build_values_clause(
       columns=['time_created', 'col_b'], bind_vars=bind_vars)
   self.assertEqual(sql, '%(time_created)s, %(col_b)s')
   self.assertEqual(column_names, ['time_created', 'col_b'])
   self.assertIn('time_created', bind_vars)
   bind_vars = dict()
   sql, column_names = sql_builder.build_values_clause(
       columns=['time_created', 'time_updated'], bind_vars=bind_vars)
   self.assertEqual(sql, '%(time_created)s, %(time_updated)s')
   self.assertEqual(column_names, ['time_created', 'time_updated'])
   self.assertIn('time_created', bind_vars)
   self.assertIn('time_updated', bind_vars)
Beispiel #10
0
  def insert(class_, cursor, **bind_variables):
    values_clause, bind_list = sql_builder.build_values_clause(
        class_.columns_list,
        bind_variables)

    if class_.columns_list is None:
      raise dbexceptions.ProgrammingError("DB class should define columns_list")

    query = 'INSERT INTO %s (%s) VALUES (%s)' % (class_.table_name,
                                                 sql_builder.colstr(
                                                     class_.columns_list,
                                                     bind=bind_list),
                                                 values_clause)
    cursor.execute(query, bind_variables)
    return cursor.lastrowid