Exemplo n.º 1
0
 def test_expr_function__and_eq(self):
     self.assertParse(
         qSelect(qp.Wildcard(),
                 where_clause=qp.And(
                     qp.Equal(qp.Column('a'), qp.Constant(2)),
                     qp.Not(qp.Equal(qp.Column('b'), qp.Constant(3))))),
         "SELECT * WHERE a = 2 AND b != 3;")
Exemplo n.º 2
0
 def test_expr_paren_multi2(self):
     self.assertParse(
         qSelect([qp.Target(
             qp.Not(qp.Equal(
                 qp.Column('a'),
                 qp.Not(qp.Equal(
                     qp.Column('b'),
                     qp.And(qp.Constant(42),
                            qp.Constant(17)))))),
             None)]),
         "SELECT a != (b != (42 AND 17));")
Exemplo n.º 3
0
 def test_print_from(self):
     self.assertParse(
         qp.Print(
             qp.From(
                 qp.Equal(qp.Column('date'),
                          qp.Constant(datetime.date(2014, 1, 1))), None,
                 True, None)), "PRINT FROM date = 2014-01-01 CLOSE;")
Exemplo n.º 4
0
 def test_balances_from_with_transformer_simple(self):
     self.assertParse(
         qp.Balances(
             'units', None,
             qp.Equal(qp.Column('date'),
                      qp.Constant(datetime.date(2014, 1, 1)))),
         "BALANCES AT units WHERE date = 2014-01-01;")
Exemplo n.º 5
0
 def test_expr_binaryop(self):
     self.assertEqual(qc.EvalEqual(qe.DateColumn(),
                                   qc.EvalConstant(datetime.date(2014, 1, 1))),
                      qc.compile_expression(
                          qp.Equal(qp.Column('date'),
                                   qp.Constant(datetime.date(2014, 1, 1))),
                          qe.TargetsEnvironment()))
Exemplo n.º 6
0
 def test_journal_from(self):
     self.assertParse(
         qp.Journal(
             None, None,
             qp.From(
                 qp.Equal(qp.Column('date'),
                          qp.Constant(datetime.date(2014, 1, 1))), None,
                 True, None)), "JOURNAL FROM date = 2014-01-01 CLOSE;")
Exemplo n.º 7
0
 def test_groupby_having(self):
     self.assertParse(
         qSelect(qp.Wildcard(),
                 group_by=qp.GroupBy(
                     [qp.Column('a')],
                     qp.Equal(qp.Function('sum', [qp.Column('position')]),
                              qp.Constant(0)))),
         "SELECT * GROUP BY a HAVING sum(position) = 0;")
Exemplo n.º 8
0
 def test_balances_from(self):
     self.assertParse(
         qp.Balances(
             None,
             qp.From(
                 qp.Equal(qp.Column('date'),
                          qp.Constant(datetime.date(2014, 1, 1))), None,
                 True, None)), "BALANCES FROM date = 2014-01-01 CLOSE;")
Exemplo n.º 9
0
 def test_balances_from_with_transformer(self):
     self.assertParse(
         qp.Balances('units',
                     qp.From(qp.Equal(qp.Column('date'),
                                      qp.Constant(datetime.date(2014, 1, 1))),
                             None, True, None),
                     None),
         "BALANCES AT units FROM date = 2014-01-01 CLOSE;")
Exemplo n.º 10
0
 def setUp(self):
     super().setUp()
     self.targets = [qp.Target(qp.Column('a'), None),
                     qp.Target(qp.Column('b'), None)]
     self.expr = qp.Equal(qp.Column('d'),
                          qp.And(
                              qp.Function('max', [qp.Column('e')]),
                              qp.Constant(17)))
Exemplo n.º 11
0
    def test_from_select(self):
        subselect = qSelect(
            qp.Wildcard(),
            qp.From(qp.Equal(qp.Column('date'),
                             qp.Constant(datetime.date(2014, 5, 2))),
                    None, None, None))

        expected = qSelect([qp.Target(qp.Column('a'), None),
                            qp.Target(qp.Column('b'), None)],
                           subselect,
                           qp.Equal(qp.Column('c'), qp.Constant(5)),
                           limit=100)

        self.assertParse(expected, """
           SELECT a, b FROM (
              SELECT * FROM date = 2014-05-02
           ) WHERE c = 5 LIMIT 100;
        """)
Exemplo n.º 12
0
 def test_balance_with_units_and_from(self):
     balance = self.parse("BALANCES AT cost FROM year = 2014;")
     select = qc.transform_balances(balance)
     self.assertEqual(
         qp.Select([
             qp.Target(qp.Column('account'), None),
             qp.Target(
                 qp.Function(
                     'sum', [qp.Function('cost', [qp.Column('position')])]),
                 None),
         ],
                   qp.From(qp.Equal(qp.Column('year'), qp.Constant(2014)),
                           None, None, None), None, self.group_by,
                   self.order_by, None, None, None, None), select)
Exemplo n.º 13
0
 def test_journal_with_account_and_from(self):
     journal = self.parse("JOURNAL 'liabilities' FROM year = 2014;")
     select = qc.transform_journal(journal)
     self.assertEqual(
         qp.Select([
             qp.Target(qp.Column('date'), None),
             qp.Target(qp.Column('flag'), None),
             qp.Target(qp.Function('maxwidth', [qp.Column('payee'),
                                                qp.Constant(48)]), None),
             qp.Target(qp.Function('maxwidth', [qp.Column('narration'),
                                                qp.Constant(80)]), None),
             qp.Target(qp.Column('account'), None),
             qp.Target(qp.Column('position'), None),
             qp.Target(qp.Column('balance'), None),
         ],
              qp.From(qp.Equal(qp.Column('year'), qp.Constant(2014)), None, None, None),
                  qp.Match(qp.Column('account'), qp.Constant('liabilities')),
                  None, None, None, None, None, None),
         select)
Exemplo n.º 14
0
 def test_expr_paren_multi(self):
     self.assertParse(
         qSelect([
             qp.Target(qp.Not(qp.Equal(qp.Column('a'), qp.Constant(42))),
                       None)
         ]), "SELECT not (a = 42);")
Exemplo n.º 15
0
 def test_expr_ne(self):
     self.assertParse(
         qSelect([
             qp.Target(qp.Not(qp.Equal(qp.Column('a'), qp.Constant(42))),
                       None)
         ]), "SELECT a != 42;")