def test_str2tags(self): self.assertEqual(data.str2tags(""), []) self.assertEqual(data.str2tags("Abc"), ["abc"]) self.assertEqual(data.str2tags("abc"), ["abc"]) self.assertEqual(data.str2tags("abc4"), ["abc4"]) self.assertEqual(data.str2tags("a,b"), ["a", "b"]) self.assertEqual(data.str2tags("a, b"), ["a", "b"]) self.assertEqual(data.str2tags("a, b"), ["a", "b"]) self.assertEqual(data.str2tags("a, b,c d a"), ["a", "b", "c", "d"]) self.assertEqual(data.str2tags("a b c a"), ["a", "b", "c"]) self.assertRaises(TypeConversionError, data.str2tags, "a;b") self.assertRaises(TypeConversionError, data.str2tags, "a+b") self.assertRaises(TypeConversionError, data.str2tags, "a!b") self.assertRaises(TypeConversionError, data.str2tags, "I'd") self.assertRaises(TypeConversionError, data.str2tags, 4) self.assertRaises(TypeConversionError, data.str2tags, None)
def test_str2tags(self): self.assertEqual(data.str2tags(''), []) self.assertEqual(data.str2tags('Abc'), ['abc']) self.assertEqual(data.str2tags('abc'), ['abc']) self.assertEqual(data.str2tags("abc4"), ['abc4']) self.assertEqual(data.str2tags('a,b'), ['a','b']) self.assertEqual(data.str2tags('a, b'), ['a','b']) self.assertEqual(data.str2tags('a, b'), ['a','b']) self.assertEqual(data.str2tags('a, b,c d a'), ['a','b','c','d']) self.assertEqual(data.str2tags('a b c a'), ['a','b','c']) self.assertRaises(TypeConversionError, data.str2tags, 'a;b') self.assertRaises(TypeConversionError, data.str2tags, 'a+b') self.assertRaises(TypeConversionError, data.str2tags, 'a!b') self.assertRaises(TypeConversionError, data.str2tags, "I'd") self.assertRaises(TypeConversionError, data.str2tags, 4) self.assertRaises(TypeConversionError, data.str2tags, None)
def ctags(input_): """ Returns a string safe for use in a sql statement @param: input_ @type input_: Anything @return: 'NULL', or input_ string >>> print ctags('') NULL >>> print ctags('linux git foo') 'foo git linux' """ if input_ in [None, '']: return 'NULL' if isinstance(input_, list): input_ = ' '.join(input_) tags = data.tags2str(data.str2tags(input_)) return "'%s'" % tags.lower()
def ctags(string): """ Returns a string safe for use in a sql statement :param: string :type string: Anything :rtype: ``NULL``, or :class:`str` >>> from chula.db import functions >>> print functions.ctags('') NULL >>> print functions.ctags('linux git foo') 'foo git linux' """ if string in [None, '']: return 'NULL' if isinstance(string, list): string = ' '.join(string) tags = data.tags2str(data.str2tags(string)) return "'%s'" % tags.lower()