예제 #1
0
    def total_users(self, s_date, e_date):
        key = 'total_users_' + s_date.strftime('%Y-%m-%d') + e_date.strftime('%Y-%m-%d')
        visitors_from_cache = memcache.get(key)
        if visitors_from_cache:
            return visitors_from_cache
        total_users = User.count() + 470
        interval = {}
        val = 0
        result = []
        # s_date = datetime.strptime(start_date, '%Y-%m-%d')
        # e_date = datetime.strptime(end_date, '%Y-%m-%d')
        days = (e_date - s_date).days + 1

        for item in range(0, days):
            date_str = (e_date - timedelta(days=item)).strftime('%Y-%m-%d')
            interval.update({date_str: 0})

        for user in User.all():
            if s_date > user.created_at:
                break
            if user.created_at > e_date:
                interval[e_date.strftime('%Y-%m-%d')] += 1
                continue
            interval[user.created_at.strftime('%Y-%m-%d')] += 1

        for item in range(0, days):
            date_str = (e_date - timedelta(days=item)).strftime('%Y-%m-%d')
            val += interval.get(date_str)
            result.append([total_users - val, date_str])
        result.reverse()
        memcache.add(key, result, 180)
        return result
예제 #2
0
    def total_users(self, s_date, e_date):
        key = 'total_users_' + s_date.strftime('%Y-%m-%d') + e_date.strftime(
            '%Y-%m-%d')
        visitors_from_cache = memcache.get(key)
        if visitors_from_cache:
            return visitors_from_cache
        total_users = User.count() + 470
        interval = {}
        val = 0
        result = []
        # s_date = datetime.strptime(start_date, '%Y-%m-%d')
        # e_date = datetime.strptime(end_date, '%Y-%m-%d')
        days = (e_date - s_date).days + 1

        for item in range(0, days):
            date_str = (e_date - timedelta(days=item)).strftime('%Y-%m-%d')
            interval.update({date_str: 0})

        for user in User.all():
            if s_date > user.created_at:
                break
            if user.created_at > e_date:
                interval[e_date.strftime('%Y-%m-%d')] += 1
                continue
            interval[user.created_at.strftime('%Y-%m-%d')] += 1

        for item in range(0, days):
            date_str = (e_date - timedelta(days=item)).strftime('%Y-%m-%d')
            val += interval.get(date_str)
            result.append([total_users - val, date_str])
        result.reverse()
        memcache.add(key, result, 180)
        return result
예제 #3
0
 def test_total_user_count(self):
     ok_(User.count() >= 0)
예제 #4
0
 def it_returns_the_total_number_of_users(self):
     with mock.patch.object(User, 'count') as mock_count:
         mock_count.return_value = 100
         eq_(100, User.count())
예제 #5
0
 def test_total_user_count(self):
     ok_(User.count() >= 0)
예제 #6
0
 def it_returns_the_total_number_of_users(self):
     with mock.patch.object(User, 'count') as mock_count:
         mock_count.return_value = 100
         eq_(100, User.count())