Hello community,

here is the log from the commit of package python-limnoria for openSUSE:Factory 
checked in at 2020-09-06 00:02:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-limnoria (Old)
 and      /work/SRC/openSUSE:Factory/.python-limnoria.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-limnoria"

Sun Sep  6 00:02:46 2020 rev:17 rq:832064 version:2020.09.03

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-limnoria/python-limnoria.changes  
2020-08-31 16:51:26.608389132 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-limnoria.new.3399/python-limnoria.changes    
    2020-09-06 00:03:00.871272231 +0200
@@ -1,0 +2,11 @@
+Fri Sep  4 10:49:33 UTC 2020 - Atri Bhattacharya <[email protected]>
+
+- Update to version 2020-09-03:
+  * ChannelLogger:
+    - Add tests for getLog.
+    - Write tests for privmsg and notice.
+    - Write tests for relayed privmsg.
+    - Add tests for non-relayed messages when rewriteRelayed is
+      True.
+
+-------------------------------------------------------------------

Old:
----
  limnoria-2020.08.30.tar.gz

New:
----
  limnoria-2020.09.03.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-limnoria.spec ++++++
--- /var/tmp/diff_new_pack.DitT45/_old  2020-09-06 00:03:01.459272526 +0200
+++ /var/tmp/diff_new_pack.DitT45/_new  2020-09-06 00:03:01.463272528 +0200
@@ -18,9 +18,9 @@
 
 %define skip_python2 1
 %define appname limnoria
-%define srcver 2020-08-30
+%define srcver 2020-09-03
 Name:           python-limnoria
-Version:        2020.08.30
+Version:        2020.09.03
 Release:        0
 Summary:        A modified version of Supybot (an IRC bot and framework)
 License:        BSD-3-Clause

++++++ limnoria-2020.08.30.tar.gz -> limnoria-2020.09.03.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Limnoria-master-2020-08-30/plugins/ChannelLogger/plugin.py 
new/Limnoria-master-2020-09-03/plugins/ChannelLogger/plugin.py
--- old/Limnoria-master-2020-08-30/plugins/ChannelLogger/plugin.py      
2020-08-29 22:53:25.000000000 +0200
+++ new/Limnoria-master-2020-09-03/plugins/ChannelLogger/plugin.py      
2020-08-30 14:52:45.000000000 +0200
@@ -302,8 +302,8 @@
         if msg.command in ('PRIVMSG', 'NOTICE'):
             rewriteRelayed = self.registryValue(
                 'rewriteRelayed', msg.channel, irc.network)
-            if rewriteRelayed and  'echo-message' in 
self.state.capabilities_ack:
-                assert 'labeled-response' in self.state.capabilities_ack, \
+            if rewriteRelayed and  'echo-message' in 
irc.state.capabilities_ack:
+                assert 'labeled-response' in irc.state.capabilities_ack, \
                     'echo-message was negotiated without labeled-response.'
                 # If we negotiated the echo-message cap, we have to remember
                 # this message was relayed when the server sends it back to us.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Limnoria-master-2020-08-30/plugins/ChannelLogger/test.py 
new/Limnoria-master-2020-09-03/plugins/ChannelLogger/test.py
--- old/Limnoria-master-2020-08-30/plugins/ChannelLogger/test.py        
2020-08-29 22:53:25.000000000 +0200
+++ new/Limnoria-master-2020-09-03/plugins/ChannelLogger/test.py        
2020-08-30 14:52:45.000000000 +0200
@@ -27,18 +27,157 @@
 # POSSIBILITY OF SUCH DAMAGE.
 ###
 
+import io
+from unittest.mock import patch, Mock
+
+from supybot import conf
 from supybot.test import *
 
-class ChannelLoggerTestCase(PluginTestCase):
+from . import plugin
+
+timestamp_re = '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}  '
+
+
+patch_open = patch.object(plugin, 'open', create=True)
+
+class ChannelLoggerTestCase(ChannelPluginTestCase):
     plugins = ('ChannelLogger',)
+    config = {
+        'supybot.plugins.ChannelLogger.flushImmediately': True,
+        'supybot.plugins.ChannelLogger.enable.:test.#foo': True,
+    }
 
-    def testLogDir(self):
+    def testLogName(self):
         self.assertEqual(
             self.irc.getCallback('ChannelLogger').getLogName('test', '#foo'),
-            '#foo.log')
+            '#foo.log'
+        )
         self.assertEqual(
             self.irc.getCallback('ChannelLogger').getLogName('test', 
'#f/../oo'),
-            '#f..oo.log')
+            '#f..oo.log'
+        )
+
+    def testLogDir(self):
+        self.assertEqual(
+            self.irc.getCallback('ChannelLogger').getLogDir(self.irc, '#foo'),
+            conf.supybot.directories.log.dirize('ChannelLogger/test/#foo')
+        )
+        self.assertEqual(
+            self.irc.getCallback('ChannelLogger').getLogDir(self.irc, 
'#f/../oo'),
+            conf.supybot.directories.log.dirize('ChannelLogger/test/#f..oo')
+        )
+
+    @patch_open
+    def testLog(self, mock_open):
+        mock_open.return_value = Mock()
+        self.assertIs(
+            self.irc.getCallback('ChannelLogger').getLog(self.irc, '#foo'),
+            mock_open.return_value
+        )
+        mock_open.assert_called_once_with(
+            
conf.supybot.directories.log.dirize('ChannelLogger/test/#foo/#foo.log'),
+            encoding='utf-8',
+            mode='a'
+        )
+
+        # the log file should be cached
+        mock_open.reset_mock()
+        self.assertIs(
+            self.irc.getCallback('ChannelLogger').getLog(self.irc, '#foo'),
+            mock_open.return_value
+        )
+        mock_open.assert_not_called()
+
+    @patch_open
+    def testLogPrivmsg(self, mock_open):
+        log_file = io.StringIO()
+        mock_open.return_value = log_file
+
+        self.irc.feedMsg(
+            ircmsgs.privmsg('#foo', 'test message', prefix='foo!bar@baz')
+        )
+
+        self.assertRegex(
+            log_file.getvalue(),
+            timestamp_re + '<foo> test message\n'
+        )
+
+    @patch_open
+    def _testLogRewriteRelayedEmulatedEcho(self, mock_open, relayed):
+        with conf.supybot.plugins.ChannelLogger.rewriteRelayed.context(True):
+            log_file = io.StringIO()
+            mock_open.return_value = log_file
+
+            msg = ircmsgs.privmsg(
+                '#foo', '<someone> test message', prefix='foo!bar@baz'
+            )
+            if relayed:
+                msg.tag('relayedMsg')
+            self.irc.getCallback('ChannelLogger').outFilter(self.irc, msg)
+            self.irc.feedMsg(msg)
+
+            if relayed:
+                content = '<someone> test message\n'
+            else:
+                content = '<foo> <someone> test message\n'
+            self.assertRegex(log_file.getvalue(), timestamp_re + content)
+
+    def testLogRewriteRelayedEmulatedEcho(self):
+        self._testLogRewriteRelayedEmulatedEcho(relayed=True)
+
+    def testLogRewriteRelayedEmulatedEchoNotRelayed(self):
+        self._testLogRewriteRelayedEmulatedEcho(relayed=False)
+
+    @patch_open
+    def _testLogRewriteRelayedRealEcho(self, mock_open, relayed):
+        with conf.supybot.plugins.ChannelLogger.rewriteRelayed.context(True):
+            log_file = io.StringIO()
+            mock_open.return_value = log_file
+
+            original_caps = self.irc.state.capabilities_ack
+            self.irc.state.capabilities_ack |= {
+                'echo-message', 'labeled-response'
+            }
+
+            try:
+                out_msg = ircmsgs.privmsg('#foo', '<someone> test message')
+                if relayed:
+                    out_msg.tag('relayedMsg')
+                self.irc.getCallback('ChannelLogger').outFilter(self.irc, 
out_msg)
+            finally:
+                self.irc.state.capabilities_ack = original_caps
+
+            msg = ircmsgs.privmsg(
+                '#foo', '<someone> test message', prefix='foo!bar@baz'
+            )
+            msg.server_tags['label'] = out_msg.server_tags['label']
+            self.irc.feedMsg(msg)
+
+            if relayed:
+                content = '<someone> test message\n'
+            else:
+                content = '<foo> <someone> test message\n'
+            self.assertRegex(log_file.getvalue(), timestamp_re + content)
+
+    def testLogRewriteRelayedRealEcho(self):
+        self._testLogRewriteRelayedRealEcho(relayed=True)
+
+    def testLogRewriteRelayedRealEchoNotRelayed(self):
+        self._testLogRewriteRelayedRealEcho(relayed=False)
+
+    @patch_open
+    def testLogNotice(self, mock_open):
+        log_file = io.StringIO()
+        mock_open.return_value = log_file
+
+        self.irc.feedMsg(
+            ircmsgs.notice('#foo', 'test message', prefix='foo!bar@baz')
+        )
+
+        self.assertRegex(
+            log_file.getvalue(),
+            timestamp_re + '-foo- test message\n'
+        )
 
 
 # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:


Reply via email to