Don't initialize devices explicitly in doctests.
authorW. Trevor King <wking@drexel.edu>
Thu, 15 Mar 2012 21:30:38 +0000 (17:30 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 15 Mar 2012 21:30:38 +0000 (17:30 -0400)
Rely on the internal `.load_from_config()` methods to do that for us.
This reduces duplication (e.g. device filename only set in config
defaults, not in doctests too).  It also makes it posible to use
several devices to build your AFM interface, where the old doctests
would only work with all the communication going through a single
card.

pyafm/afm.py
pyafm/digital_port.py
pyafm/stepper.py

index cac626941e0de556353a5bfbc8b33657bf3905ff..2c228e16f8f8ddaaa65db9935c1fabd02d596197 100644 (file)
@@ -52,7 +52,6 @@ class AFM (object):
 
     >>> import os
     >>> import tempfile
-    >>> from pycomedi.device import Device
     >>> from pycomedi import constant
     >>> import pypiezo.config
     >>> import pyafm.config
@@ -62,8 +61,7 @@ class AFM (object):
     >>> fd,filename = tempfile.mkstemp(suffix='.h5', prefix='pyafm-')
     >>> os.close(fd)
 
-    >>> device = Device('/dev/comedi0')
-    >>> device.open()
+    >>> devices = []
 
     >>> config = pyafm.config.AFMConfig()
     >>> config['piezo'] = pypiezo.config.PiezoConfig()
@@ -83,7 +81,7 @@ class AFM (object):
     >>> config['temperature'] = pyafm.config.TemperatureConfig()
     >>> config['temperature']['name'] = 'test temperature'
 
-    >>> afm = AFM(config=config, devices=[device])
+    >>> afm = AFM(config=config, devices=devices)
     >>> afm.setup_config()
 
     >>> afm.get_temperature()  # doctest: +SKIP
@@ -262,14 +260,15 @@ class AFM (object):
           test temperature
         <HDF5 dataset "units": shape (), type "|S7">
           Celsius
-    >>> afm2 = pyafm.storage.load_afm(filename=filename, devices=[device])
+    >>> afm2 = pyafm.storage.load_afm(filename=filename, devices=devices)
 
     >>> afm2.get_temperature()  # doctest: +SKIP
     297.37
 
     It's hard to test anything else without pugging into an actual AFM.
 
-    >>> device.close()
+    >>> for device in devices:
+    ...     device.close()
 
     Cleanup our temporary config file.
 
index bdce8f8f9e147486ce62b6f55506440289c6a9f1..0abe5c11e5dae8e5401b63060ea5b7619f95783d 100644 (file)
@@ -7,22 +7,21 @@ import pypiezo.base as _base
 class DigitalPort (object):
     """A digital input/output port (i.e. cluster of channels).
 
-    >>> from pycomedi.device import Device
     >>> from pyafm.config import DigitalPortConfig
 
-    >>> device = Device('/dev/comedi0')
-    >>> device.open()
+    >>> devices = []
 
     >>> config = DigitalPortConfig()
     >>> config['channels'] = [1, 2, 3, 4]
     >>> config['name'] = 'test port'
 
-    >>> port = DigitalPort(config=config, devices=[device])
+    >>> port = DigitalPort(config=config, devices=devices)
     >>> port.write_bitfield(13)
     >>> port.write([1, 0, 1, 0])
     >>> port.write_bitfield(0)
 
-    >>> device.close()
+    >>> for device in devices:
+    ...     device.close()
     """
     def __init__(self, config, devices=None):
         self.config = config
index cc2573d21e86f4df851a223f94027f5585a65ccb..d82accea0ddadb363c62ad7097612c9410e51668 100644 (file)
@@ -11,12 +11,10 @@ class Stepper(_stepper.Stepper):
 
     Uses `DigitalPort` for transmitting the output.
 
-    >>> from pycomedi.device import Device
     >>> from pycomedi import constant as _constant
     >>> from pyafm.config import StepperConfig, DigitalPortConfig
 
-    >>> device = Device('/dev/comedi0')
-    >>> device.open()
+    >>> devices = []
 
     >>> config = StepperConfig()
     >>> config['port'] = DigitalPortConfig()
@@ -25,14 +23,15 @@ class Stepper(_stepper.Stepper):
     >>> config['port']['name'] = 'stepper port'
     >>> config['name'] = 'test stepper'
 
-    >>> s = Stepper(config=config, devices=[device])
+    >>> s = Stepper(config=config, devices=devices)
     >>> s.position
     0
     >>> s.single_step(1)
     >>> s.position
     2
 
-    >>> device.close()
+    >>> for device in devices:
+    ...     device.close()
     """
     def __init__(self, config, devices=None):
         self.config = config