Rev 9: Implement server test Feature. in file:///v/home/vila/.bazaar/plugins/local_test_server/

Vincent Ladeuil v.ladeuil+lp at free.fr
Thu May 29 08:35:39 BST 2008


At file:///v/home/vila/.bazaar/plugins/local_test_server/

------------------------------------------------------------
revno: 9
revision-id: v.ladeuil+lp at free.fr-20080529073538-rxew7godtq2dau49
parent: v.ladeuil+lp at free.fr-20080528191059-gq4r5s90t7y3lm93
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: local_test_server
timestamp: Thu 2008-05-29 09:35:38 +0200
message:
  Implement server test Feature.
  
  * tests/test_server.py:
  (TestApache2.test_server_fetature_not_available,
  test_server_feature_available): New tests.
  
  * server.py:
  (Apache2Feature): New class.
modified:
  TODO                           todo-20080526134120-eibvvebw74t8j2xh-1
  server.py                      server.py-20080524160639-rqhbexqatjqbwypw-1
  tests/test_server.py           test_server.py-20080524160641-lco15o23ub9mac33-1
-------------- next part --------------
=== modified file 'TODO'
--- a/TODO	2008-05-28 19:10:59 +0000
+++ b/TODO	2008-05-29 07:35:38 +0000
@@ -1,5 +1,3 @@
 * server.py
 
-* create a bzrlib.tests.Feature by server
-
 * plug the server if the corresponding feature is available.

=== modified file 'server.py'
--- a/server.py	2008-05-28 19:10:59 +0000
+++ b/server.py	2008-05-29 07:35:38 +0000
@@ -23,7 +23,12 @@
 import time
 
 
-from bzrlib import errors
+from bzrlib import (
+    errors,
+    tests,
+    )
+
+
 from bzrlib.plugins.local_test_server import config
 """)
 
@@ -112,7 +117,8 @@
         # But of course, it's not enough
         if not self._wait_for_pid_death(pid):
             raise errors.BzrCommandError(
-                'apache2 cannot be stopped pid: %s' % pid)
+                'apache2 on port %s cannot be stopped pid: %s'
+                % (self.get_config_value('port'), pid))
 
     def _hk_poll(self, verified, delay=None, interval=None):
         """Poll for a condition to be verified until delay expired.
@@ -184,6 +190,19 @@
         return pid
 
 
+class Apache2Feature(tests.Feature):
+
+    def __init__(self):
+        super(Apache2Feature, self).__init__()
+        self.server = get_server('apache2')
+
+    def feature_name(self):
+        return 'apache2'
+
+    def _probe(self):
+        return self.server.is_running()
+
+
 _next_available_port = 49000
 _max_available_port = 49151
 def _get_available_port():
@@ -216,3 +235,4 @@
 def get_server(name):
     return _servers.get(name, None)
 
+

=== modified file 'tests/test_server.py'
--- a/tests/test_server.py	2008-05-28 19:10:59 +0000
+++ b/tests/test_server.py	2008-05-29 07:35:38 +0000
@@ -84,3 +84,18 @@
         self.assertTrue(s.is_running())
         s.stop()
         self.assertFalse(s.is_running())
+
+    def test_server_feature_not_available(self):
+        f = server.Apache2Feature()
+        # Override default server with a testing one
+        f.server = self._get_server()
+        self.assertFalse(f.available())
+
+    def test_server_feature_available(self):
+        f = server.Apache2Feature()
+        # Override default server with a testing one
+        f.server = self._get_server()
+        f.server.start()
+        self.addCleanup(f.server.stop)
+        self.assertTrue(f.available())
+



More information about the bazaar-commits mailing list