import datetime
def yyyyddd2datetime(yyyyddd) :
"""
yyyyddd 形式の日付文字列をdatetimeに変換します.
1/1は ddd = 000 になります。
@param yyyyddd 日付の文字列
@return datetime型
"""
yyyy = int(yyyyddd[0:4])
ddd = int(yyyyddd[4:])
date = datetime.datetime(yyyy, 1, 1)
date = date + datetime.timedelta(days=ddd)
return date
#!/usr/bin/env python
# coding: utf-8
import unittest
import datetime
import myDateConv
class MyDateConvTest(unittest.TestCase):
def setUp(self):
'''
test_xxx を呼び出す直前に呼ばれます
'''
print('setUp()')
def tearDown(self):
'''
test_xxx を呼び出した直後に呼ばれます
'''
print('tearDown()')
def test_dateConv(self):
print('正常系テスト開始')
self.assertEqual(myDateConv.yyyyddd2datetime('2012000'), datetime.datetime(2012,1,1))
self.assertEqual(myDateConv.yyyyddd2datetime('2012030'), datetime.datetime(2012,1,31))
self.assertEqual(myDateConv.yyyyddd2datetime('2012060'), datetime.datetime(2012,3,1))
self.assertEqual(myDateConv.yyyyddd2datetime('2012365'), datetime.datetime(2012,12,31))
self.assertEqual(myDateConv.yyyyddd2datetime('2012366'), datetime.datetime(2013,1,1))
print('正常系テスト終了')
def test_dateConv2(self):
print('異常系テスト開始')
try :
myDateConv.yyyyddd2datetime('abcdefg')
except ValueError :
pass
else :
self.fail('ValueErrorが発生しませんでした')
print('異常系テスト終了')
if __name__ == '__main__':
unittest.main()
setUp() 正常系テスト開始 正常系テスト終了 tearDown() setUp() 異常系テスト開始 異常系テスト終了 tearDown() ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK
$ ./myDateConvTest.py MyDateConvTest.test_dateConv2
import unittest
module_names = ['myDateConvTest']
def suite():
suite = unittest.TestSuite()
for module_name in module_names:
module = __import__(module_name)
suite.addTest(unittest.TestLoader().loadTestsFromModule(module))
return suite
if __name__ == '__main__':
unittest.main(defaultTest='suite')