def handle(self, *args, **options): biz_date = to_biz_date(datetime.datetime.now()) file_path = jsonl_file_path(biz_date) reader = Reader(file_path) organizer = Organizer() for data in reader.readlines(): try: organizer.organize(data) except InvalidDataException: print "invalid-data\t" + str(data)
def setUp(self): self.org = Organizer() self.data = dummy_data()
class TestOrganizer(TestCase): fixtures = ['scrape.json'] def setUp(self): self.org = Organizer() self.data = dummy_data() def test_process_girl(self): datum = self.data[0] # first girl, is_new = self.org.process_girl(datum) self.assertTrue(is_new) self.assertEqual(girl.id, '12285394') self.assertEqual(girl.name, 'エルメ') self.assertEqual(girl.age, 23) self.assertEqual(girl.shop_id, 'honeyplaza') self.assertTrue('grpb0012285394_0000000000pc.jpg?cache02=1453258218' in girl.img_url) # second girl, is_not_new = self.org.process_girl(datum) self.assertFalse(is_not_new) self.assertEqual(girl.id, '12285394') # count-inserted self.assertEqual(Girl.count(), 1) # abnormal invalid = copy.copy(datum) invalid['girl_id'] = 'test' del invalid['age'] self.assertRaises(InvalidDataException, self.org.process_girl, invalid) def test_process_attendance(self): datum = self.data[1] # exercise self.org.process_girl(datum) # first atnd, is_new = self.org.process_attendance(datum) self.assertTrue(is_new) self.assertEqual(atnd.id, '12192627-20160130') self.assertEqual(atnd.girl.id, '12192627') self.assertEqual(atnd.date, datetime.date(2016, 1, 30)) self.assertEqual(atnd.clock_in, datetime.datetime(2016, 1, 30, 18, 0, 0)) self.assertEqual(atnd.clock_out, datetime.datetime(2016, 1, 31, 2, 0, 0)) # second snd, is_not_new = self.org.process_attendance(datum) self.assertFalse(is_not_new) self.assertEqual(snd.id, '12192627-20160130') # count-inserted self.assertEqual(Attendance.count(), 1) def test_process_status_log(self): datum = self.data[2] # exercise self.org.process_girl(datum) self.org.process_attendance(datum) # first stat, is_new = self.org.process_status_log(datum) self.assertTrue(is_new) self.assertEqual(stat.id, '8907484-20160130-164000') self.assertEqual(stat.attendance.id, '8907484-20160130') self.assertEqual(stat.checked_at, datetime.datetime(2016, 1, 30, 16, 40, 0)) self.assertEqual(stat.status, 'off') # second snd, is_not_new = self.org.process_status_log(datum) self.assertFalse(is_not_new) self.assertEqual(snd.id, '8907484-20160130-164000') # count-inserted self.assertEqual(StatusLog.count(), 1) # abnormal null_status = copy.copy(datum) del null_status['status'] self.assertRaises(NotOurDataException, self.org.process_status_log, null_status)