def test_statement(self):
        ist = InsertStatement('table', None)
        ist.add_assignment(Column(db_field='a'), 'b')
        ist.add_assignment(Column(db_field='c'), 'd')

        self.assertEqual(six.text_type(ist),
                         'INSERT INTO table ("a", "c") VALUES (%(0)s, %(1)s)')
 def test_context_update(self):
     us = UpdateStatement("table")
     us.add_assignment(Column(db_field="a"), "b")
     us.add_assignment(Column(db_field="c"), "d")
     us.add_where(Column(db_field="a"), EqualsOperator(), "x")
     us.update_context_id(3)
     self.assertEqual(
         six.text_type(us),
         'UPDATE table SET "a" = %(4)s, "c" = %(5)s WHERE "a" = %(3)s')
     self.assertEqual(us.get_context(), {"4": "b", "5": "d", "3": "x"})
    def test_context_update(self):
        ist = InsertStatement('table', None)
        ist.add_assignment(Column(db_field='a'), 'b')
        ist.add_assignment(Column(db_field='c'), 'd')

        ist.update_context_id(4)
        self.assertEqual(six.text_type(ist),
                         'INSERT INTO table ("a", "c") VALUES (%(4)s, %(5)s)')
        ctx = ist.get_context()
        self.assertEqual(ctx, {'4': 'b', '5': 'd'})
Ejemplo n.º 4
0
 def test_context_update(self):
     us = UpdateStatement('table')
     us.add_assignment(Column(db_field='a'), 'b')
     us.add_assignment(Column(db_field='c'), 'd')
     us.add_where(Column(db_field='a'), EqualsOperator(), 'x')
     us.update_context_id(3)
     self.assertEqual(
         six.text_type(us),
         'UPDATE table SET "a" = %(4)s, "c" = %(5)s WHERE "a" = %(3)s')
     self.assertEqual(us.get_context(), {'4': 'b', '5': 'd', '3': 'x'})
Ejemplo n.º 5
0
    def test_rendering(self):
        us = UpdateStatement('table')
        us.add_assignment(Column(db_field='a'), 'b')
        us.add_assignment(Column(db_field='c'), 'd')
        us.add_where(Column(db_field='a'), EqualsOperator(), 'x')
        self.assertEqual(
            six.text_type(us),
            'UPDATE table SET "a" = %(0)s, "c" = %(1)s WHERE "a" = %(2)s',
            six.text_type(us))

        us.add_where(Column(db_field='a'), NotEqualsOperator(), 'y')
        self.assertEqual(
            six.text_type(us),
            'UPDATE table SET "a" = %(0)s, "c" = %(1)s WHERE "a" = %(2)s AND "a" != %(3)s',
            six.text_type(us))
    def test_rendering(self):
        us = UpdateStatement("table")
        us.add_assignment(Column(db_field="a"), "b")
        us.add_assignment(Column(db_field="c"), "d")
        us.add_where(Column(db_field="a"), EqualsOperator(), "x")
        self.assertEqual(
            six.text_type(us),
            'UPDATE table SET "a" = %(0)s, "c" = %(1)s WHERE "a" = %(2)s',
            six.text_type(us),
        )

        us.add_where(Column(db_field="a"), NotEqualsOperator(), "y")
        self.assertEqual(
            six.text_type(us),
            'UPDATE table SET "a" = %(0)s, "c" = %(1)s WHERE "a" = %(2)s AND "a" != %(3)s',
            six.text_type(us),
        )
    def test_context_update(self):
        ds = DeleteStatement('table', None)
        ds.add_field(MapDeleteClause('d', {1: 2}, {1: 2, 3: 4}))
        ds.add_where(Column(db_field='a'), EqualsOperator(), 'b')

        ds.update_context_id(7)
        self.assertEqual(six.text_type(ds), 'DELETE "d"[%(8)s] FROM table WHERE "a" = %(7)s')
        self.assertEqual(ds.get_context(), {'7': 'b', '8': 3})
Ejemplo n.º 8
0
 def test_count(self):
     ss = SelectStatement('table', count=True, limit=10, order_by='d')
     ss.add_where(Column(db_field='a'), EqualsOperator(), 'b')
     self.assertEqual(
         six.text_type(ss),
         'SELECT COUNT(*) FROM table WHERE "a" = %(0)s LIMIT 10',
         six.text_type(ss))
     self.assertIn('LIMIT', six.text_type(ss))
     self.assertNotIn('ORDER', six.text_type(ss))
    def test_context_update(self):
        ds = DeleteStatement("table", None)
        ds.add_field(MapDeleteClause("d", {1: 2}, {1: 2, 3: 4}))
        ds.add_where(Column(db_field="a"), EqualsOperator(), "b")

        ds.update_context_id(7)
        self.assertEqual(six.text_type(ds),
                         'DELETE "d"[%(8)s] FROM table WHERE "a" = %(7)s')
        self.assertEqual(ds.get_context(), {"7": "b", "8": 3})
 def test_count(self):
     ss = SelectStatement("table", count=True, limit=10, order_by="d")
     ss.add_where(Column(db_field="a"), EqualsOperator(), "b")
     self.assertEqual(
         six.text_type(ss),
         'SELECT COUNT(*) FROM table WHERE "a" = %(0)s LIMIT 10',
         six.text_type(ss),
     )
     self.assertIn("LIMIT", six.text_type(ss))
     self.assertNotIn("ORDER", six.text_type(ss))
    def test_distinct(self):
        ss = SelectStatement('table', distinct_fields=['field2'])
        ss.add_where(Column(db_field='field1'), EqualsOperator(), 'b')
        self.assertEqual(six.text_type(ss), 'SELECT DISTINCT "field2" FROM table WHERE "field1" = %(0)s', six.text_type(ss))

        ss = SelectStatement('table', distinct_fields=['field1', 'field2'])
        self.assertEqual(six.text_type(ss), 'SELECT DISTINCT "field1", "field2" FROM table')

        ss = SelectStatement('table', distinct_fields=['field1'], count=True)
        self.assertEqual(six.text_type(ss), 'SELECT DISTINCT COUNT("field1") FROM table')
    def test_context_id_update(self):
        """ tests that the right things happen the the context id """
        ss = SelectStatement("table")
        ss.add_where(Column(db_field="a"), EqualsOperator(), "b")
        self.assertEqual(ss.get_context(), {"0": "b"})
        self.assertEqual(str(ss), 'SELECT * FROM table WHERE "a" = %(0)s')

        ss.update_context_id(5)
        self.assertEqual(ss.get_context(), {"5": "b"})
        self.assertEqual(str(ss), 'SELECT * FROM table WHERE "a" = %(5)s')
Ejemplo n.º 13
0
    def test_comparisons(self):
        c0 = Column()
        c1 = Column()
        self.assertEqual(c1.position - c0.position, 1)

        # __ne__
        self.assertNotEqual(c0, c1)
        self.assertNotEqual(c0, object())

        # __eq__
        self.assertEqual(c0, c0)
        self.assertFalse(c0 == object())

        # __lt__
        self.assertLess(c0, c1)
        try:
            c0 < object()  # this raises for Python 3
        except TypeError:
            pass

        # __le__
        self.assertLessEqual(c0, c1)
        self.assertLessEqual(c0, c0)
        try:
            c0 <= object()  # this raises for Python 3
        except TypeError:
            pass

        # __gt__
        self.assertGreater(c1, c0)
        try:
            c1 > object()  # this raises for Python 3
        except TypeError:
            pass

        # __ge__
        self.assertGreaterEqual(c1, c0)
        self.assertGreaterEqual(c1, c1)
        try:
            c1 >= object()  # this raises for Python 3
        except TypeError:
            pass
Ejemplo n.º 14
0
    def test_range_deletion_rendering(self):
        ds = DeleteStatement('table', None)
        ds.add_where(Column(db_field='a'), EqualsOperator(), 'b')
        ds.add_where(Column(db_field='created_at'),
                     GreaterThanOrEqualOperator(), '0')
        ds.add_where(Column(db_field='created_at'), LessThanOrEqualOperator(),
                     '10')
        self.assertEqual(
            six.text_type(ds),
            'DELETE FROM table WHERE "a" = %(0)s AND "created_at" >= %(1)s AND "created_at" <= %(2)s',
            six.text_type(ds))

        ds = DeleteStatement('table', None)
        ds.add_where(Column(db_field='a'), EqualsOperator(), 'b')
        ds.add_where(Column(db_field='created_at'), InOperator(),
                     ['0', '10', '20'])
        self.assertEqual(
            six.text_type(ds),
            'DELETE FROM table WHERE "a" = %(0)s AND "created_at" IN %(1)s',
            six.text_type(ds))

        ds = DeleteStatement('table', None)
        ds.add_where(Column(db_field='a'), NotEqualsOperator(), 'b')
        self.assertEqual(six.text_type(ds),
                         'DELETE FROM table WHERE "a" != %(0)s',
                         six.text_type(ds))
    def test_range_deletion_rendering(self):
        ds = DeleteStatement("table", None)
        ds.add_where(Column(db_field="a"), EqualsOperator(), "b")
        ds.add_where(Column(db_field="created_at"),
                     GreaterThanOrEqualOperator(), "0")
        ds.add_where(Column(db_field="created_at"), LessThanOrEqualOperator(),
                     "10")
        self.assertEqual(
            six.text_type(ds),
            'DELETE FROM table WHERE "a" = %(0)s AND "created_at" >= %(1)s AND "created_at" <= %(2)s',
            six.text_type(ds),
        )

        ds = DeleteStatement("table", None)
        ds.add_where(Column(db_field="a"), EqualsOperator(), "b")
        ds.add_where(Column(db_field="created_at"), InOperator(),
                     ["0", "10", "20"])
        self.assertEqual(
            six.text_type(ds),
            'DELETE FROM table WHERE "a" = %(0)s AND "created_at" IN %(1)s',
            six.text_type(ds),
        )

        ds = DeleteStatement("table", None)
        ds.add_where(Column(db_field="a"), NotEqualsOperator(), "b")
        self.assertEqual(six.text_type(ds),
                         'DELETE FROM table WHERE "a" != %(0)s',
                         six.text_type(ds))
 def test_where_clause_rendering(self):
     ss = SelectStatement("table")
     ss.add_where(Column(db_field="a"), EqualsOperator(), "b")
     self.assertEqual(
         six.text_type(ss), 'SELECT * FROM table WHERE "a" = %(0)s', six.text_type(ss)
     )
 def test_additional_rendering(self):
     ist = InsertStatement('table', ttl=60)
     ist.add_assignment(Column(db_field='a'), 'b')
     ist.add_assignment(Column(db_field='c'), 'd')
     self.assertIn('USING TTL 60', six.text_type(ist))
 def test_context(self):
     ss = SelectStatement('table')
     ss.add_where(Column(db_field='a'), EqualsOperator(), 'b')
     self.assertEqual(ss.get_context(), {'0': 'b'})
 def test_where_clause_rendering(self):
     ds = DeleteStatement("table", None)
     ds.add_where(Column(db_field="a"), EqualsOperator(), "b")
     self.assertEqual(six.text_type(ds),
                      'DELETE FROM table WHERE "a" = %(0)s',
                      six.text_type(ds))
Ejemplo n.º 20
0
 def test_context(self):
     ds = DeleteStatement('table', None)
     ds.add_where(Column(db_field='a'), EqualsOperator(), 'b')
     self.assertEqual(ds.get_context(), {'0': 'b'})
Ejemplo n.º 21
0
 def test_context(self):
     us = UpdateStatement('table')
     us.add_assignment(Column(db_field='a'), 'b')
     us.add_assignment(Column(db_field='c'), 'd')
     us.add_where(Column(db_field='a'), EqualsOperator(), 'x')
     self.assertEqual(us.get_context(), {'0': 'b', '1': 'd', '2': 'x'})
 def test_additional_rendering(self):
     us = UpdateStatement("table", ttl=60)
     us.add_assignment(Column(db_field="a"), "b")
     us.add_where(Column(db_field="a"), EqualsOperator(), "x")
     self.assertIn("USING TTL 60", six.text_type(us))
 def test_context(self):
     ss = SelectStatement("table")
     ss.add_where(Column(db_field="a"), EqualsOperator(), "b")
     self.assertEqual(ss.get_context(), {"0": "b"})
 def test_context(self):
     ds = DeleteStatement("table", None)
     ds.add_where(Column(db_field="a"), EqualsOperator(), "b")
     self.assertEqual(ds.get_context(), {"0": "b"})
 def test_context(self):
     us = UpdateStatement("table")
     us.add_assignment(Column(db_field="a"), "b")
     us.add_assignment(Column(db_field="c"), "d")
     us.add_where(Column(db_field="a"), EqualsOperator(), "x")
     self.assertEqual(us.get_context(), {"0": "b", "1": "d", "2": "x"})
Ejemplo n.º 26
0
 def test_hash(self):
     c0 = Column()
     self.assertEqual(id(c0), c0.__hash__())
Ejemplo n.º 27
0
 def test_additional_rendering(self):
     us = UpdateStatement('table', ttl=60)
     us.add_assignment(Column(db_field='a'), 'b')
     us.add_where(Column(db_field='a'), EqualsOperator(), 'x')
     self.assertIn('USING TTL 60', six.text_type(us))