Exemple #1
0
    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)
Exemple #2
0
 def process_girl(self, data):
     """:rtype: (Girl, bool)"""
     try:
         girl_id = data['girl_id']
         return Girl.find_by_pk_with_cache(girl_id), False
     except Girl.DoesNotExist:
         girl = Girl()
         girl.id = data['girl_id']
         girl.name = data['name']
         girl.age = data.get('age')
         girl.shop_id = data.get('shop_id')
         girl.img_url = data['img_url']
         self.save_or_raise(girl)
         return girl, True
Exemple #3
0
    def process_attendance(self, data):
        """:rtype: (Attendance, bool)"""
        if data.get('clock_in') is None or data.get('clock_out') is None:
            raise NotOurDataException

        try:
            pk = Attendance.composite_pk(
                data['girl_id'],
                to_biz_date(data['checked_term']))
            return Attendance.find_by_pk_with_cache(pk), False
        except Attendance.DoesNotExist:
            atnd = Attendance()
            atnd.girl = Girl.find_by_pk_with_cache(data['girl_id'])
            atnd.date = to_biz_date(data['checked_term'])
            atnd.clock_in = data['clock_in']
            atnd.clock_out = data['clock_out']
            self.save_or_raise(atnd)
            return atnd, True