示例#1
0
class TestField(TestCase):
    def setUp(self):
        table = BaseTable('my_table')
        self.field = BaseField('my_field', table)

    def test_should_set_field_name(self):
        self.assertEqual(self.field.name, 'my_field')

    def test_quote_int_value(self):
        self.assertEqual(self.field._quote(2), 2)

    def test_quote_string_value(self):
        self.assertEqual(self.field._quote('bad guy'), "'bad guy'")

    def test_should_decorate_adding_not_for_field_with_invert(self):
        self.field._invert = True
        base_query = (self.field == 2)
        self.assertEqual(base_query.query, 'NOT (`my_table`.`my_field` = 2)')

    def test_should_not_decorate_adding_not_for_field_without_invert(self):
        base_query = (self.field == 2)
        self.field._check_and_do_invert(base_query)
        self.assertEqual(base_query.query, '`my_table`.`my_field` = 2')

    def test_should_return_base_query_with_field(self):
        compare = self.field == 2
        self.assertIs(compare.fields[0], self.field)

    def test_should_return_base_query_with_not_field(self):
        field1 = ~self.field
        compare = field1 == 2
        self.assertIs(compare.fields[0], field1)

    def test_should_return_sql(self):
        self.assertEqual('`my_table`.`my_field`', self.field.sql())

    def test_should_return_sql_with_sql_template(self):
        self.field.sql_template = '%s ASC'
        self.assertEqual('`my_table`.`my_field` ASC', self.field.sql())

    def test_should_return_sql_with_extra_template(self):
        self.assertEqual('`my_table`.`my_field` ASC', self.field.sql('%s ASC'))

    def test_should_return_sql_with_sql_template_and_extra_template(self):
        self.field.sql_template = '%s ASC'
        self.assertEqual('`my_table`.`my_field` ASC FOOL',
                         self.field.sql('%s FOOL'))

    def test_should_create_new_field_with_count(self):
        field1 = self.field.count

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('COUNT(`my_table`.`my_field`)', field1.sql())

    def test_should_create_new_field_with_avg(self):
        field1 = self.field.avg

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('AVG(`my_table`.`my_field`)', field1.sql())

    def test_should_create_new_field_with_sum(self):
        field1 = self.field.sum

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('SUM(`my_table`.`my_field`)', field1.sql())
示例#2
0
class TestField(TestCase):

    def setUp(self):
        table = BaseTable('my_table')
        self.field = BaseField('my_field', table)

    def test_should_set_field_name(self):
        self.assertEqual(self.field.name, 'my_field')

    def test_quote_int_value(self):
        self.assertEqual(self.field._quote(2), 2)

    def test_quote_string_value(self):
        self.assertEqual(self.field._quote('bad guy'), "'bad guy'")

    def test_should_decorate_adding_not_for_field_with_invert(self):
        self.field._invert = True
        base_query = (self.field == 2)
        self.assertEqual(base_query.query, 'NOT (`my_table`.`my_field` = 2)')

    def test_should_not_decorate_adding_not_for_field_without_invert(self):
        base_query = (self.field == 2)
        self.field._check_and_do_invert(base_query)
        self.assertEqual(base_query.query, '`my_table`.`my_field` = 2')

    def test_should_return_base_query_with_field(self):
        compare = self.field == 2
        self.assertIs(compare.fields[0], self.field)

    def test_should_return_base_query_with_not_field(self):
        field1 = ~self.field
        compare = field1 == 2
        self.assertIs(compare.fields[0], field1)

    def test_should_return_sql(self):
        self.assertEqual('`my_table`.`my_field`', self.field.sql())

    def test_should_return_sql_with_sql_template(self):
        self.field.sql_template = '%s ASC'
        self.assertEqual('`my_table`.`my_field` ASC', self.field.sql())

    def test_should_return_sql_with_extra_template(self):
        self.assertEqual('`my_table`.`my_field` ASC', self.field.sql('%s ASC'))

    def test_should_return_sql_with_sql_template_and_extra_template(self):
        self.field.sql_template = '%s ASC'
        self.assertEqual('`my_table`.`my_field` ASC FOOL', self.field.sql('%s FOOL'))

    def test_should_create_new_field_with_count(self):
        field1 = self.field.count

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('COUNT(`my_table`.`my_field`)', field1.sql())

    def test_should_create_new_field_with_avg(self):
        field1 = self.field.avg

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('AVG(`my_table`.`my_field`)', field1.sql())

    def test_should_create_new_field_with_sum(self):
        field1 = self.field.sum

        self.assertNotEqual(id(self.field), id(field1))
        self.assertEqual('SUM(`my_table`.`my_field`)', field1.sql())