예제 #1
0
파일: functions.py 프로젝트: jbloetz/chula
def cdate(input_, doquote=True, isfunction=False):
    """
    Returns a formatted string safe for use in SQL. If None or an empty
    string is passed, it will return 'NULL' so as to insert a NULL value
    into the database.
    
    B{Todo:}
    I{This function needs to be able to receive datetime.datetime types too.}
    
    @param input_: Date to be cleaned
    @type input_: String
    @return: String, or 'NULL'
    
    >>> print 'SET updated = %s;' % cdate('1/1/2005')
    SET updated = '1/1/2005';
    
    >>> print 'SET updated = %s;' % cdate('now()', isfunction=True)
    SET updated = now();
    """
    
    if input_ in [None, '', 'NULL']:
        return 'NULL'

    elif isfunction:
        return input_

    else:
        input_ = str(input_)
        if data.isdate(input_):
            if doquote:
                input_ = data.wrap(input_, "'")
        else:
            raise error.TypeConversionError(input_, 'sql date')

    return input_
예제 #2
0
def cdate(string, doquote=True, isfunction=False):
    """
    Returns a formatted string safe for use in SQL. If :class:`None` or an empty
    string is passed, it will return ``NULL`` so as to insert a NULL value
    into the database.

    .. note::

       Todo: This function needs to be able to receive
       datetime.datetime types too.

    :param string: Date to be cleaned
    :type string: :class:`str`
    :rtype: :class:`str`, or ``NULL``

    >>> from chula.db import functions
    >>> print 'SET updated = %s;' % functions.cdate('1/1/2005')
    SET updated = '1/1/2005';

    >>> print 'SET updated = %s;' % functions.cdate('now()', isfunction=True)
    SET updated = now();
    """

    if string in [None, '', 'NULL']:
        return 'NULL'

    elif isfunction:
        return string

    else:
        string = str(string)
        if data.isdate(string):
            if doquote:
                string = data.wrap(string, "'")
        else:
            raise error.TypeConversionError(string, 'sql date')

    return string
예제 #3
0
파일: test_data.py 프로젝트: jbloetz/chula
 def test_isdate(self):
     self.assertEqual(data.isdate('1/1/2005'), True)
     self.assertEqual(data.isdate('1-1-2005'), True)
     self.assertEqual(data.isdate('2005-01-01'), True)
     self.assertEqual(data.isdate('1/1/2005 10:45'), True)
     self.assertEqual(data.isdate('1/1/2005 10:45:00'), True)
     self.assertEqual(data.isdate('1/1/20050'), False)
     self.assertEqual(data.isdate(None), False)
     self.assertEqual(data.isdate('a'), False)
     self.assertEqual(data.isdate(1), False)
     self.assertEqual(data.isdate(''), False)
     self.assertEqual(data.isdate("'"), False)
예제 #4
0
 def test_isdate(self):
     self.assertEqual(data.isdate("1/1/2005"), True)
     self.assertEqual(data.isdate("1-1-2005"), True)
     self.assertEqual(data.isdate("2005-01-01"), True)
     self.assertEqual(data.isdate("1/1/2005 10:45"), True)
     self.assertEqual(data.isdate("1/1/2005 10:45:00"), True)
     self.assertEqual(data.isdate("1/1/20050"), False)
     self.assertEqual(data.isdate(None), False)
     self.assertEqual(data.isdate("a"), False)
     self.assertEqual(data.isdate(1), False)
     self.assertEqual(data.isdate(""), False)
     self.assertEqual(data.isdate("'"), False)