示例#1
0
文件: test.py 项目: zjpjohn/OpenERP
assert d.hour == 12
assert d.minute == 13
assert d.second == 14
assert d.absdate == 733043
assert d.abstime == 43994.0
assert long(d.absdays * 1000) == 733042509L

# Normalization
assert DateTime(2008, 1, -1).day == 31
assert DateTime(2008, 1, -31).day == 1
assert DateTime(2008, -1, 1).month == 12
assert DateTime(2008, -12, 1).month == 1
assert DateTime(-1, 1, 1).year == -1

# .rebuild()
assert id(d) != id(d.rebuild())
assert d.rebuild(year=2000) == DateTime(2000, 1, 2, 12, 13, 14)
assert d.rebuild(month=11) == DateTime(2008, 11, 2, 12, 13, 14)
assert d.rebuild(day=12) == DateTime(2008, 1, 12, 12, 13, 14)
assert d.rebuild(hour=9) == DateTime(2008, 1, 2, 9, 13, 14)
assert d.rebuild(minute=20) == DateTime(2008, 1, 2, 12, 20, 14)
assert d.rebuild(second=33) == DateTime(2008, 1, 2, 12, 13, 33)
assert d.rebuild(second=35.5) == DateTime(2008, 1, 2, 12, 13, 35.5)
assert d.rebuild(year=2000, hour=10) == DateTime(2000, 1, 2, 10, 13, 14)

## Test DateTimeFromAbsDateTime()

# wintertime
t = winter = DateTimeFromAbsDateTime(729368, 55931.522913)
print t
print repr(t)
示例#2
0
def test_constructors():
    ## DateTime()
    d = DateTime(2008,1,2, 12,13,14)
    assert d.year == 2008
    assert d.month == 1
    assert d.day == 2
    assert d.hour == 12
    assert d.minute == 13
    assert d.second == 14
    assert d.absdate == 733043
    assert d.abstime == 43994.0
    assert long(d.absdays*1000) == 733042509L

    # Normalization
    assert DateTime(2008,1,-1).day == 31
    assert DateTime(2008,1,-31).day == 1
    assert DateTime(2008,-1,1).month == 12
    assert DateTime(2008,-12,1).month == 1
    assert DateTime(-1,1,1).year == -1

    # Range errors
    try:
        DateTime(2014, 9, 31)
    except RangeError:
        pass
    else:
        raise AssertionError('DateTime(2014, 9, 31) should raise a RangeError')
    try:
        MaxDateTime + 10
    except RangeError:
        pass
    else:
        raise AssertionError('MaxDateTime + 10 should raise a RangeError')
    try:
        MinDateTime - 10
    except RangeError:
        pass
    else:
        raise AssertionError('MinDateTime - 10 should raise a RangeError')

    # .rebuild()
    assert id(d) != id(d.rebuild())
    assert d.rebuild(year=2000) == DateTime(2000,1,2, 12,13,14)
    assert d.rebuild(month=11) == DateTime(2008,11,2, 12,13,14)
    assert d.rebuild(day=12) == DateTime(2008,1,12, 12,13,14)
    assert d.rebuild(hour=9) == DateTime(2008,1,2, 9,13,14)
    assert d.rebuild(minute=20) == DateTime(2008,1,2, 12,20,14)
    assert d.rebuild(second=33) == DateTime(2008,1,2, 12,13,33)
    assert d.rebuild(second=35.5) == DateTime(2008,1,2, 12,13,35.5)
    assert d.rebuild(year=2000, hour=10) == DateTime(2000,1,2, 10,13,14)

    ## Test DateTimeFromAbsDateTime()

    # wintertime
    t = DateTimeFromAbsDateTime(729368,55931.522913)
    print t
    print repr(t)
    assert str(t) == '1997-12-10 15:32:11.52'

    x = float(t)
    print 'as ticks:',x
    print 'time.gmtime:',time.gmtime(x),'(note the seconds)'
    print 'time.localtime:',time.localtime(x)
    print 'tuple:',t.tuple()

    print

    # summertime
    t = DateTimeFromAbsDateTime(729200,55931.522913)
    print t
    print repr(t)
    assert str(t) == '1997-06-25 15:32:11.52'

    x = float(t)
    print 'as ticks:',x
    print 'time.gmtime:',time.gmtime(x),'(note the seconds)'
    print 'time.localtime:',time.localtime(x)
    print 'tuple:',t.tuple()

    # Leap seconds
    try:
        leap_2008_0 = DateTimeFromAbsDateTime(733407, 86401.75)
    except RangeError:
        pass
    else:
        raise AssertionError('DateTimeFromAbsDateTime')
    leap_2008_1 = DateTimeFromAbsDateTime(733407, 86400.75)
    assert leap_2008_1.abstime == 86400.75
    assert str(leap_2008_1) == '2008-12-31 23:59:60.75'
    leap_2008_2 = DateTimeFromAbsDateTime(733407, 86400.99)
    assert leap_2008_2.abstime == 86400.99
    assert str(leap_2008_2) == '2008-12-31 23:59:60.99'
    leap_2008_2 = DateTimeFromAbsDateTime(733407, 86400.999)
    assert leap_2008_2.abstime == 86400.999
    assert str(leap_2008_2) == '2008-12-31 23:59:60.99'

    print

    ## Test Timestamp()
    t = Timestamp(1900,1,1,12,23,34.5)
    print t
    assert t.tuple()[:6] == (1900,1,1,12,23,34)
    assert str(t) == '1900-01-01 12:23:34.50'

    ## Test DateTimeFromCOMDate()
    t = DateTimeFromCOMDate(12345.6)
    print t
    assert t.COMDate() == 12345.6
    assert str(t) == '1933-10-18 14:24:00.00'

    t = DateTimeFromCOMDate(-12345.6)
    print t
    assert t.COMDate() == -12345.6
    assert str(t) == '1866-03-13 14:24:00.00'

    ## Test DateTimeFromTicks()
    x = time.time()
    print 'ticks:',x,'localtime:',time.localtime(x)
    t = DateTimeFromTicks(x)
    print t.tuple(), t.absdate, t.abstime
    assert t.ticks() == x
    print

    ## Test Date()
    t = Date(2007,1,1)
    #print t
    assert str(t) == '2007-01-01 00:00:00.00'
    assert t.absdate == 732677
    assert t.date == '2007-01-01'
    assert t.time == '00:00:00.00'

    # Negative days count from the month's end
    t = Date(2007,1,-1)
    #print t
    assert str(t) == '2007-01-31 00:00:00.00'
    assert t.absdate == 732707
    assert t.date == '2007-01-31'
    assert t.time == '00:00:00.00'
    t = Date(2007,2,-1)
    #print t
    assert t.absdate == 732735
    assert t.date == '2007-02-28'
    assert t.time == '00:00:00.00'

    ## Test now()
    t1 = now()
    time.sleep(0.1)
    t2 = now()
    if t1 == t2:
        print 'WARNING: now() does not provide sub-second accuracy'
    else:
        # Report now_resolution
        if hasattr(mx.DateTime, 'now_resolution'):
            print ('now() resolution reported by the system: '
                '%f microseconds' % (now_resolution * 1e6))

        # Test now() resolution
        min_t_diff = 1.0
        current_time = now
        for i in range(1000):
            t1, t2 = current_time(), current_time()
            t_diff = abs(t2.abstime - t1.abstime)
            if t_diff < min_t_diff:
                min_t_diff = t_diff
        if min_t_diff > 0:
            print ('now() resolution measured as < %f microseconds'
                % (min_t_diff * 1e6))
        else:
            print 'now() resolution cannot be determined'


    print
    print 'Basic constructors ok.'
示例#3
0
assert d.hour == 12
assert d.minute == 13
assert d.second == 14
assert d.absdate == 733043
assert d.abstime == 43994.0
assert long(d.absdays * 1000) == 733042509L

# Normalization
assert DateTime(2008, 1, -1).day == 31
assert DateTime(2008, 1, -31).day == 1
assert DateTime(2008, -1, 1).month == 12
assert DateTime(2008, -12, 1).month == 1
assert DateTime(-1, 1, 1).year == -1

# .rebuild()
assert id(d) != id(d.rebuild())
assert d.rebuild(year=2000) == DateTime(2000, 1, 2, 12, 13, 14)
assert d.rebuild(month=11) == DateTime(2008, 11, 2, 12, 13, 14)
assert d.rebuild(day=12) == DateTime(2008, 1, 12, 12, 13, 14)
assert d.rebuild(hour=9) == DateTime(2008, 1, 2, 9, 13, 14)
assert d.rebuild(minute=20) == DateTime(2008, 1, 2, 12, 20, 14)
assert d.rebuild(second=33) == DateTime(2008, 1, 2, 12, 13, 33)
assert d.rebuild(second=35.5) == DateTime(2008, 1, 2, 12, 13, 35.5)
assert d.rebuild(year=2000, hour=10) == DateTime(2000, 1, 2, 10, 13, 14)

## Test DateTimeFromAbsDateTime()

# wintertime
t = winter = DateTimeFromAbsDateTime(729368, 55931.522913)
print t
print repr(t)