예제 #1
0
파일: log2db.py 프로젝트: sakamossan/d
 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)
예제 #2
0
파일: tests.py 프로젝트: sakamossan/d
 def setUp(self):
     self.org = Organizer()
     self.data = dummy_data()
예제 #3
0
파일: tests.py 프로젝트: sakamossan/d
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)