Browse Source

Merge branch 'master' of github.com:celery/celery

Ask Solem 9 years ago
parent
commit
0865fe3545
2 changed files with 21 additions and 0 deletions
  1. 1 0
      CONTRIBUTORS.txt
  2. 20 0
      celery/tests/worker/test_autoscale.py

+ 1 - 0
CONTRIBUTORS.txt

@@ -207,3 +207,4 @@ David Harrigan, 2016/02/01
 Ahmet Demir, 2016/02/27
 Maxime Verger, 2016/02/29
 Alexander Oblovatniy, 2016/03/10
+Komu Wairagu, 2016/04/03

+ 20 - 0
celery/tests/worker/test_autoscale.py

@@ -192,3 +192,23 @@ class test_Autoscaler(AppCase):
             sys.stderr = p
         _exit.assert_called_with(1)
         self.assertTrue(stderr.write.call_count)
+
+    def test_no_negative_scale(self):
+        total_num_processes = []
+        worker = Mock(name='worker')
+        x = autoscale.Autoscaler(self.pool, 10, 3, worker=worker)
+        x.body() #the body func scales up or down
+
+        for i in range(35):
+            state.reserved_requests.add(i)
+            x.body()
+            total_num_processes.append(self.pool.num_processes)
+
+        for i in range(35):
+            state.reserved_requests.remove(i)
+            x.body()
+            total_num_processes.append(self.pool.num_processes)
+
+        self. assertTrue(
+            all(x.min_concurrency <= i <= x.max_concurrency for i in total_num_processes)
+        )