Changeset 93

Show
Ignore:
Timestamp:
Mon Aug 8 15:07:04 2005
Author:
fredrikc
Message:

Fixed newline issue with last commit.

Files:

Legend:

Unmodified
Added
Removed
Modified
  • trunk/transolution/xliffeditor/general.py

    r91 r93  
    1   class EditorException(Exception): pass  
    2   class XliffError(Exception): pass  
    3   InterfaceErr =  NotImplementedError('must be implemented in subclasses')  
    4    
    5   import weakref  
    6   class Observer(object):  
    7       def __init__(self):  
    8           pass  
    9       def observe(self,subject):  
    10           subject.subscribe(self)  
    11    
    12       def unobserve(self,subject):  
    13           if subject is not None:  
    14               subject.unsubscribe(self)  
    15    
    16       def xupdate(self,*args,**kwargs):  
    17           raise InterfaceErr  
    18    
    19   class Notifier(object):  
    20       'Obeserver pattern interface'  
    21       def __init__(self):  
    22           self._observers = weakref.WeakKeyDictionary()  
    23            
    24       # observer pattern interface  
    25       def subscribe(self,observer):  
    26           self._observers[observer] = None  
    27    
    28       def unsubscribe(self,observer):  
    29           if observer in self._observers:  
    30               del self._observers[observer]  
    31    
    32       def xnotify(self,*args,**kwargs):  
    33           if not (args):  
    34               args = [self,]  
    35           for o in self._observers:  
    36               o.xupdate(*args,**kwargs)  
    37    
      1 class EditorException(Exception): pass  
      2 class XliffError(Exception): pass  
      3 InterfaceErr =  NotImplementedError('must be implemented in subclasses')  
      4  
      5 import weakref  
      6 class Observer(object):  
      7     def __init__(self):  
      8         pass  
      9     def observe(self,subject):  
      10         subject.subscribe(self)  
      11  
      12     def unobserve(self,subject):  
      13         if subject is not None:  
      14             subject.unsubscribe(self)  
      15  
      16     def xupdate(self,*args,**kwargs):  
      17         raise InterfaceErr  
      18  
      19 class Notifier(object):  
      20     'Obeserver pattern interface'  
      21     def __init__(self):  
      22         self._observers = weakref.WeakKeyDictionary()  
      23          
      24     # observer pattern interface  
      25     def subscribe(self,observer):  
      26         self._observers[observer] = None  
      27  
      28     def unsubscribe(self,observer):  
      29         if observer in self._observers:  
      30             del self._observers[observer]  
      31  
      32     def xnotify(self,*args,**kwargs):  
      33         if not (args):  
      34             args = [self,]  
      35         for o in self._observers:  
      36             o.xupdate(*args,**kwargs)  
      37  
  • trunk/transolution/tm/engine/indextest.py

    r92 r93  
    1   #!/usr/bin/env pythonimport index  
      1 #!/usr/bin/env python  
      2 import index  
    2 3 import sys  
    3 4  
  • trunk/transolution/test_observer.py

    r92 r93  
    1   #! /usr/bin/env python  
    2   #Here's the code for the unit tests, which also serves as usage examples.  It should go in a file named test_observer.py:  
    3   import unittest  
    4   from observer import Observable, Observer  
    5    
    6   EVENT_FOO, EVENT_UPDATE = range(2)  
    7    
    8   class Stuff(Observable):  
    9    
    10       def __init__(self):  
    11           Observable.__init__(self)  
    12           self._data = None  
    13    
    14       def setData(self, data):  
    15           self._data = data  
    16           self.notifyObservers(None, data)  
    17    
    18       def setDataWithUpdateEvent(self, data):  
    19           self._data = data  
    20           self.notifyObservers(EVENT_UPDATE, data)  
    21    
    22       def setDataWithFooEvent(self, data):  
    23           self._data = data  
    24           self.notifyObservers(EVENT_FOO, data)  
    25    
    26    
    27   class StuffWatcher(Observer):  
    28    
    29       def __init__(self, observable=None, cbname=None, events=None):  
    30           Observer.__init__(self, observable, cbname, events)  
    31           self._data = None  
    32           self._updateData = None  
    33           self._reportData = None  
    34    
    35       def update(self, observable, event, msg):  
    36           self._data = msg  
    37           self._updateData = msg  
    38    
    39       def report(self, observable, event, msg):  
    40           self._data = msg  
    41           self._reportData = msg  
    42    
    43    
    44   class TestCase_01_Observer(unittest.TestCase):  
    45    
    46       def test_01_noMethod(self):  
    47           observable = Stuff()  
    48           observer1 = StuffWatcher(observable, "foo")  
    49           self.assertRaises(NotImplementedError, observable.setData, 10)  
    50    
    51       def test_02_simple(self):  
    52    
    53           observable = Stuff()  
    54           observer1 = StuffWatcher(observable)  
    55           observer2 = StuffWatcher(observable)  
    56           self.assertEqual(len(observable._observers), 2)  
    57    
    58           observable.setData(10)  
    59           self.assertEqual(observer1._data, 10)  
    60           self.assertEqual(observer2._data, 10)  
    61    
    62           observable.setData(20)  
    63           self.assertEqual(observer1._data, 20)  
    64           self.assertEqual(observer2._data, 20)  
    65    
    66           del observer1  
    67           self.assertEqual(len(observable._observers), 1)  
    68    
    69           observable.setData(30)  
    70           self.assertEqual(observer2._data, 30)  
    71    
    72           observer3 = StuffWatcher()  
    73           self.assertEqual(len(observable._observers), 1)  
    74           observer3.subscribeToObservable(observable)  
    75           self.assertEqual(len(observable._observers), 2)  
    76      
    77           observable.setData(40)  
    78           self.assertEqual(observer2._data, 40)  
    79           self.assertEqual(observer3._data, 40)  
    80    
    81           del observer2  
    82           self.assertEqual(len(observable._observers), 1)  
    83    
    84           observable.setData(50)  
    85           self.assertEqual(observer3._data, 50)  
    86    
    87       def test_03_specificEvents(self):  
    88    
    89           observable = Stuff()  
    90           observer1 = StuffWatcher(observable, events=EVENT_UPDATE)  
    91           observer2 = StuffWatcher(observable, events=EVENT_FOO)  
    92    
    93           observable.setDataWithUpdateEvent(10)  
    94           self.assertEqual(observer1._data, 10)  
    95           self.assertEqual(observer2._data, None)  
    96    
    97           observable = Stuff()  
    98           observer1 = StuffWatcher(observable, events=(EVENT_UPDATE, EVENT_FOO))  
    99    
    100           observable.setDataWithUpdateEvent(10)  
    101           self.assertEqual(observer1._data, 10)  
    102    
    103           observable.setDataWithFooEvent(20)  
    104           self.assertEqual(observer1._data, 20)  
    105    
    106       def test_03_multipleObservables(self):  
    107           observable1 = Stuff()  
    108           observable2 = Stuff()  
    109           observer = StuffWatcher()  
    110    
    111           observer.subscribeToObservable(observable1, "update", EVENT_UPDATE)  
    112           observer.subscribeToObservable(observable2, "report", EVENT_FOO)  
    113           self.assertEqual(len(observable1._observers), 1)  
    114           self.assertEqual(len(observable2._observers), 1)  
    115    
    116           observable1.setDataWithUpdateEvent(10)  
    117           self.assertEqual(observer._data, 10)  
    118           self.assertEqual(observer._updateData, 10)  
    119           self.assertEqual(observer._reportData, None)  
    120    
    121           observable1.setDataWithFooEvent(20)  
    122           self.assertEqual(observer._data, 10)  
    123           self.assertEqual(observer._updateData, 10)  
    124           self.assertEqual(observer._reportData, None)  
    125    
    126           observable2.setDataWithUpdateEvent(30)  
    127           self.assertEqual(observer._data, 10)  
    128           self.assertEqual(observer._updateData, 10)  
    129           self.assertEqual(observer._reportData, None)  
    130    
    131           observable2.setDataWithFooEvent(40)  
    132           self.assertEqual(observer._data, 40)  
    133           self.assertEqual(observer._updateData, 10)  
    134           self.assertEqual(observer._reportData, 40)  
    135    
    136    
    137   if __name__ == "__main__":  
    138       unittest.main()  
      1 #! /usr/bin/env python  
      2 #Here's the code for the unit tests, which also serves as usage examples.  It should go in a file named test_observer.py:  
      3 import unittest  
      4 from observer import Observable, Observer  
      5  
      6 EVENT_FOO, EVENT_UPDATE = range(2)  
      7  
      8 class Stuff(Observable):  
      9  
      10     def __init__(self):  
      11         Observable.__init__(self)  
      12         self._data = None  
      13  
      14     def setData(self, data):  
      15         self._data = data  
      16         self.notifyObservers(None, data)  
      17  
      18     def setDataWithUpdateEvent(self, data):  
      19         self._data = data  
      20         self.notifyObservers(EVENT_UPDATE, data)  
      21  
      22     def setDataWithFooEvent(self, data):  
      23         self._data = data  
      24         self.notifyObservers(EVENT_FOO, data)  
      25  
      26  
      27 class StuffWatcher(Observer):  
      28  
      29     def __init__(self, observable=None, cbname=None, events=None):  
      30         Observer.__init__(self, observable, cbname, events)  
      31         self._data = None  
      32         self._updateData = None  
      33         self._reportData = None  
      34  
      35     def update(self, observable, event, msg):  
      36         self._data = msg  
      37         self._updateData = msg  
      38  
      39     def report(self, observable, event, msg):  
      40         self._data = msg  
      41         self._reportData = msg  
      42  
      43  
      44 class TestCase_01_Observer(unittest.TestCase):  
      45  
      46     def test_01_noMethod(self):  
      47         observable = Stuff()  
      48         observer1 = StuffWatcher(observable, "foo")  
      49         self.assertRaises(NotImplementedError, observable.setData, 10)  
      50  
      51     def test_02_simple(self):  
      52  
      53         observable = Stuff()  
      54         observer1 = StuffWatcher(observable)  
      55         observer2 = StuffWatcher(observable)  
      56         self.assertEqual(len(observable._observers), 2)  
      57  
      58         observable.setData(10)  
      59         self.assertEqual(observer1._data, 10)  
      60         self.assertEqual(observer2._data, 10)  
      61  
      62         observable.setData(20)  
      63         self.assertEqual(observer1._data, 20)  
      64         self.assertEqual(observer2._data, 20)  
      65  
      66         del observer1  
      67         self.assertEqual(len(observable._observers), 1)  
      68  
      69         observable.setData(30)  
      70         self.assertEqual(observer2._data, 30)  
      71  
      72         observer3 = StuffWatcher()  
      73         self.assertEqual(len(observable._observers), 1)  
      74         observer3.subscribeToObservable(observable)  
      75         self.assertEqual(len(observable._observers), 2)  
      76    
      77         observable.setData(40)  
      78         self.assertEqual(observer2._data, 40)  
      79         self.assertEqual(observer3._data, 40)  
      80  
      81         del observer2  
      82         self.assertEqual(len(observable._observers), 1)  
      83  
      84         observable.setData(50)  
      85         self.assertEqual(observer3._data, 50)  
      86  
      87     def test_03_specificEvents(self):  
      88  
      89         observable = Stuff()  
      90         observer1 = StuffWatcher(observable, events=EVENT_UPDATE)  
      91         observer2 = StuffWatcher(observable, events=EVENT_FOO)  
      92  
      93         observable.setDataWithUpdateEvent(10)  
      94         self.assertEqual(observer1._data, 10)  
      95         self.assertEqual(observer2._data, None)  
      96  
      97         observable = Stuff()  
      98         observer1 = StuffWatcher(observable, events=(EVENT_UPDATE, EVENT_FOO))  
      99  
      100         observable.setDataWithUpdateEvent(10)  
      101         self.assertEqual(observer1._data, 10)  
      102  
      103         observable.setDataWithFooEvent(20)  
      104         self.assertEqual(observer1._data, 20)  
      105  
      106     def test_03_multipleObservables(self):  
      107         observable1 = Stuff()  
      108         observable2 = Stuff()  
      109         observer = StuffWatcher()  
      110  
      111         observer.subscribeToObservable(observable1, "update", EVENT_UPDATE)  
      112         observer.subscribeToObservable(observable2, "report", EVENT_FOO)  
      113         self.assertEqual(len(observable1._observers), 1)  
      114         self.assertEqual(len(observable2._observers), 1)  
      115  
      116         observable1.setDataWithUpdateEvent(10)  
      117         self.assertEqual(observer._data, 10)  
      118         self.assertEqual(observer._updateData, 10)  
      119         self.assertEqual(observer._reportData, None)  
      120  
      121         observable1.setDataWithFooEvent(20)  
      122         self.assertEqual(observer._data, 10)  
      123         self.assertEqual(observer._updateData, 10)  
      124         self.assertEqual(observer._reportData, None)  
      125  
      126         observable2.setDataWithUpdateEvent(30)  
      127         self.assertEqual(observer._data, 10)  
      128         self.assertEqual(observer._updateData, 10)  
      129         self.assertEqual(observer._reportData, None)  
      130  
      131         observable2.setDataWithFooEvent(40)  
      132         self.assertEqual(observer._data, 40)  
      133         self.assertEqual(observer._updateData, 10)  
      134         self.assertEqual(observer._reportData, 40)  
      135  
      136  
      137 if __name__ == "__main__":  
      138     unittest.main()  
  • trunk/sgml2xliff.py

    r92 r93  
    1   #!/usr/bin/env python#  Transolution XLIFF Filter  
      1 #!/usr/bin/env python  
      2 #  Transolution XLIFF Filter  
    2 3 #  Copyright (C) 2005 Fredrik Corneliusson <fredrik.corneliusson at gmail dot com>  
    3 4 #  
  • trunk/xliff2sgml.py

    r92 r93  
    1   #!/usr/bin/env python#  Transolution XLIFF Filter  
      1 #!/usr/bin/env python  
      2 #  Transolution XLIFF Filter  
    2 3 #  Copyright (C) 2005 Fredrik Corneliusson <fredrik.corneliusson at gmail dot com>  
    3 4 #  
  • trunk/xliffeditor.py

    r92 r93  
    1   #!/usr/bin/env python#  Transolution Trans XLIFF Editor  
      1 #!/usr/bin/env python  
      2 #  Transolution Trans XLIFF Editor  
    2 3 #  Copyright (C) 2005 Fredrik Corneliusson <fredrik.corneliusson at gmail dot com>  
    3 4 #  
  • trunk/tm.py

    r92 r93  
    1   #!/usr/bin/env python#  Transolution TM  
      1 #!/usr/bin/env python  
      2 #  Transolution TM  
    2 3 #  Copyright (C) 2005 Fredrik Estreen, Fredrik Corneliusson <fredrik.corneliusson at gmail dot com>  
    3 4 #