Revision: 177
Author:   janne.t.harkonen
Date:     Wed Aug 29 22:24:27 2012
Log:      Enumerate param names in set_x_configuration keywords
http://code.google.com/p/robotframework-sshlibrary/source/detail?r=177

Modified:
 /trunk/src/SSHLibrary/config.py
 /trunk/src/SSHLibrary/library.py
 /trunk/utest/test_library.py

=======================================
--- /trunk/src/SSHLibrary/config.py     Fri Aug 24 05:10:16 2012
+++ /trunk/src/SSHLibrary/config.py     Wed Aug 29 22:24:27 2012
@@ -33,27 +33,14 @@
         """Update configuration entries.

         :param entries: entries to be updated, keyword argument names must
-            match existing entry names.
+ match existing entry names. If any value in `**entries` is None,
+            the corresponding entry is *not* updated.

         See `__init__` for an example.
         """
-        for name in entries:
-            self._config[name].set(entries[name])
-
-    def update_with_strings(self, *entries):
-        """Update configuration entries.
-
- :param entries: entries to be updated as strings in format name=value.
-
-        Example:
-        cfg = Configuration(name=StringEntry('initial'))
-        assert cfg.name == initial
-        cfg.update('name=John Doe')
-        assert cfg.name == 'John Doe'
-        """
-        for e in entries:
-            name, value = e.split('=', 1)
-            self.update(**{name: value})
+        for name, value in entries.items():
+            if value is not None:
+                self._config[name].set(value)

     def get(self, name):
         """Return entry corresponding to name."""
=======================================
--- /trunk/src/SSHLibrary/library.py    Wed Aug 29 22:24:17 2012
+++ /trunk/src/SSHLibrary/library.py    Wed Aug 29 22:24:27 2012
@@ -56,7 +56,7 @@
     ROBOT_LIBRARY_VERSION = __version__

     def __init__(self, timeout=3, newline='LF', prompt=None,
-                 log_level='INFO'):
+                 loglevel='INFO'):
         """SSH Library allows some import time configuration.

         `timeout`, `newline` and `prompt` set default values for new
@@ -64,7 +64,7 @@
         later be changed using `Set Default Configuration` and settings
         of a single connection with `Set Client Configuration`.

-        `log_level` sets the default log level used to log return values of
+        `loglevel` sets the default log level used to log return values of
         `Read Until` variants. It can also be later changed using `Set
         Default Configuration`.

@@ -73,13 +73,14 @@
         | Library | SSHLibrary | timeout=10 | prompt=> |
         """
         self._cache = ConnectionCache()
-        self._config = DefaultConfig(timeout, newline, prompt, log_level)
+        self._config = DefaultConfig(timeout, newline, prompt, loglevel)

     @property
     def ssh_client(self):
         return self._cache.current

-    def set_default_configuration(self, *entries):
+    def set_default_configuration(self, timeout=None, newline=None,
+                                  prompt=None, loglevel=None):
         """Update the default configuration values.

This keyword can only be used using named argument syntax. The names
@@ -89,9 +90,11 @@
         Example:
             | Set Default Configuration | newline=CRLF | prompt=$ |
         """
-        self._config.update_with_strings(*entries)
+ self._config.update(timeout=timeout, newline=newline, prompt=prompt,
+                            loglevel=loglevel)

-    def set_client_configuration(self, *entries):
+ def set_client_configuration(self, timeout=None, newline=None, prompt=None,
+                                 term_type='vt100', width=80, height=24):
         """Update the client configuration values.

         Works on the currently selected connection. At least one connection
@@ -104,7 +107,9 @@
         Example:
             | Set Client Configuration | term_type=ansi | timeout=2 hours |
         """
-        self.ssh_client.config.update_with_strings(*entries)
+        self.ssh_client.config.update(timeout=timeout, newline=newline,
+                                      prompt=prompt, term_type=term_type,
+                                      width=width, height=height)

     def open_connection(self, host, alias=None, port=22, timeout=None,
                         newline=None, prompt=None, term_type='vt100',
@@ -540,14 +545,14 @@
         self._log(msg, 'DEBUG')

     def _log(self, msg, level=None):
-        level = self._active_log_level(level)
+        level = self._active_loglevel(level)
         msg = msg.strip()
         if msg:
             print '*%s* %s' % (level, msg)

-    def _active_log_level(self, level):
+    def _active_loglevel(self, level):
         if level is None:
-            return self._config.log_level
+            return self._config.loglevel
         if isinstance(level, basestring) and \
level.upper() in ['TRACE', 'DEBUG', 'INFO', 'WARN', 'HTML']:
             return level.upper()
@@ -556,9 +561,9 @@

 class DefaultConfig(Configuration):

-    def __init__(self, timeout, newline, prompt, log_level):
+    def __init__(self, timeout, newline, prompt, loglevel):
         Configuration.__init__(self,
                 timeout=TimeEntry(timeout or 3),
                 newline=NewlineEntry(newline or 'LF'),
                 prompt=StringEntry(prompt),
-                log_level=LogLevelEntry(log_level or 'INFO'))
+                loglevel=LogLevelEntry(loglevel or 'INFO'))
=======================================
--- /trunk/utest/test_library.py        Fri Aug 24 04:21:30 2012
+++ /trunk/utest/test_library.py        Wed Aug 29 22:24:27 2012
@@ -18,18 +18,18 @@
     def test_set_default_confguarition(self):
         timeout, newline, prompt, level = 1, '\r\n', '>', 'DEBUG'
         lib = SSHLibrary()
-        lib.set_default_configuration('timeout=%s' % timeout,
-                                      'newline=%s' % newline,
-                                      'prompt=%s' % prompt,
-                                      'log_level=%s' % level)
+        lib.set_default_configuration(timeout=timeout,
+                                      newline=newline,
+                                      prompt=prompt,
+                                      loglevel=level)
         self._assert_config(lib._config, timeout, newline, prompt, level)

     def _assert_config(self, cfg, timeout=3, newline='\n', prompt=None,
-                       log_level='INFO'):
+                       loglevel='INFO'):
         self.assertEquals(cfg.timeout, timeout)
         self.assertEquals(cfg.newline, newline)
         self.assertEquals(cfg.prompt, prompt)
-        self.assertEquals(cfg.log_level, log_level)
+        self.assertEquals(cfg.loglevel, loglevel)


 class TestSSHClientConfiguration(unittest.TestCase):
@@ -45,12 +45,12 @@
         self._assert_config(lib.ssh_client.config, timeout=5)

     def test_set_client_confguration(self):
-        port, term_type = 23, 'ansi'
+        timeout, term_type = 23, 'ansi'
         lib = SSHLibrary()
         lib.open_connection(HOSTNAME)
-        lib.set_client_configuration('port=%d' % port,
-                                     'term_type=%s' % term_type)
-        self._assert_config(lib.ssh_client.config, port=port,
+        lib.set_client_configuration(timeout=timeout,
+                                     term_type=term_type)
+        self._assert_config(lib.ssh_client.config, timeout=timeout,
                             term_type=term_type)


Reply via email to