def test_join_queries_upper(self):
        """Return query string with uppercased operator"""
        operator = 'foo'
        args = ['bar', 'baz']
        returned_value = _join_queries(operator, args)

        # Operator should be uppercased
        self.assertTrue(operator.upper() in returned_value)
    def test_join_queries_upper(self):
        """Return query string with uppercased operator"""
        operator = 'foo'
        args = ['bar', 'baz']
        returned_value = _join_queries(operator, args)

        # Operator should be uppercased
        self.assertTrue(operator.upper() in returned_value)
    def test_join_queries_construction(self):
        """Return correct number of operators"""
        operator = 'foo'
        args = ['bar']
        returned_value = _join_queries(operator, args)

        # With only one arg, operator should not appear
        self.assertFalse(operator in returned_value)
        # The return value should be the lone arg
        self.assertEquals(returned_value, args[0])

        args.extend(('baz', 'qux'))
        returned_value = _join_queries('foo', args)

        # Operator should still not appear
        self.assertFalse(operator in returned_value)
        # Operator should appear one less time than length of args
        self.assertEquals(returned_value.count(operator.upper()),
                          len(args) - 1)
    def test_join_queries_construction(self):
        """Return correct number of operators"""
        operator = 'foo'
        args = ['bar']
        returned_value = _join_queries(operator, args)

        # With only one arg, operator should not appear
        self.assertFalse(operator in returned_value)
        # The return value should be the lone arg
        self.assertEquals(returned_value, args[0])

        args.extend(('baz', 'qux'))
        returned_value = _join_queries('foo', args)

        # Operator should still not appear
        self.assertFalse(operator in returned_value)
        # Operator should appear one less time than length of args
        self.assertEquals(returned_value.count(operator.upper()),
                          len(args) - 1)
    def test_join_queries_args(self):
        """Throw exception if args is not list or splat of strings"""
        operator = 'foo'
        args = ('bar', 'baz')

        # Args should not a tuple
        with self.assertRaises(TypeError) as error:
            _join_queries(operator, args)
        self.assertEquals(type(error.exception), TypeError)

        # Args should not a sequence of integers or floats
        with self.assertRaises(TypeError) as error:
            _join_queries(operator, 1, 1.1)
        self.assertEquals(type(error.exception), TypeError)

        # Args can be a list of strings
        args = ['bar', 'baz']
        returned_value = _join_queries(operator, args)
        self.assertEquals(type(returned_value), str)

        # Args can be a sequence of strings
        returned_value = _join_queries(operator, 'bar', 'baz', 'qux')
        self.assertEquals(type(returned_value), str)
    def test_join_queries_args(self):
        """Throw exception if args is not list or splat of strings"""
        operator = 'foo'
        args = ('bar', 'baz')

        # Args should not a tuple
        with self.assertRaises(TypeError) as error:
            _join_queries(operator, args)
        self.assertEquals(type(error.exception), TypeError)

        # Args should not a sequence of integers or floats
        with self.assertRaises(TypeError) as error:
            _join_queries(operator, 1, 1.1)
        self.assertEquals(type(error.exception), TypeError)

        # Args can be a list of strings
        args = ['bar', 'baz']
        returned_value = _join_queries(operator, args)
        self.assertEquals(type(returned_value), str)

        # Args can be a sequence of strings
        returned_value = _join_queries(operator, 'bar', 'baz', 'qux')
        self.assertEquals(type(returned_value), str)