mirror of
https://github.com/haiwen/seahub.git
synced 2025-04-27 19:05:16 +00:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from mock import patch
|
|
import time
|
|
|
|
from django.urls import reverse
|
|
from django.test import override_settings
|
|
|
|
from seahub.api2.throttling import SimpleRateThrottle
|
|
from seahub.test_utils import BaseTestCase
|
|
|
|
|
|
class ThrottingsTest(BaseTestCase):
|
|
|
|
def setUp(self):
|
|
# clear cache between every test case to avoid cache issue in throtting
|
|
self.clear_cache()
|
|
|
|
self.login_as(self.user)
|
|
|
|
@patch.object(SimpleRateThrottle, 'get_rate')
|
|
def test_default(self, mock_get_rate):
|
|
mock_get_rate.return_value = '10/minute'
|
|
|
|
for i in range(12):
|
|
res = self.client.get(reverse('api2-pub-repos'))
|
|
if i >= 10:
|
|
assert res.status_code == 429
|
|
else:
|
|
assert res.status_code == 200
|
|
|
|
time.sleep(0.1)
|
|
|
|
@override_settings(REST_FRAMEWORK_THROTTING_WHITELIST=['127.0.0.1'])
|
|
@patch.object(SimpleRateThrottle, 'get_rate')
|
|
def test_whitelist(self, mock_get_rate):
|
|
mock_get_rate.return_value = '10/minute'
|
|
|
|
for i in range(12):
|
|
res = self.client.get(reverse('api2-pub-repos'))
|
|
assert res.status_code == 200
|
|
|
|
time.sleep(0.1)
|