From 0e58d771cdf332edef1f4a93fb131cd5f4ba434b Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 23 Jul 2011 03:58:26 +0200 Subject: [PATCH] Make tests check that response only has values once, fixes double OK bug --- mopidy/frontends/mpd/protocol/status.py | 2 -- tests/frontends/mpd/protocol/__init__.py | 5 +++ tests/frontends/mpd/protocol/idle_test.py | 42 +++++++++++------------ 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/mopidy/frontends/mpd/protocol/status.py b/mopidy/frontends/mpd/protocol/status.py index 444ec0c2..5a319a5d 100644 --- a/mopidy/frontends/mpd/protocol/status.py +++ b/mopidy/frontends/mpd/protocol/status.py @@ -91,8 +91,6 @@ def idle(context, subsystems=None): for subsystem in active: response.append(u'changed: %s' % subsystem) - response.append(u'OK') - return response @handle_request(r'^noidle$') diff --git a/tests/frontends/mpd/protocol/__init__.py b/tests/frontends/mpd/protocol/__init__.py index 68668bc2..00314946 100644 --- a/tests/frontends/mpd/protocol/__init__.py +++ b/tests/frontends/mpd/protocol/__init__.py @@ -46,6 +46,11 @@ class BaseTestCase(unittest.TestCase): self.assert_(value in self.connection.response, u'Did not find %s ' 'in %s' % (repr(value), repr(self.connection.response))) + def assertOnceInResponse(self, value): + matched = len([r for r in self.connection.response if r == value]) + self.assertEqual(1, matched, 'Expected to find %s once in %s' % + (repr(value), repr(self.connection.response))) + def assertNotInResponse(self, value): self.assert_(value not in self.connection.response, u'Found %s in %s' % (repr(value), repr(self.connection.response))) diff --git a/tests/frontends/mpd/protocol/idle_test.py b/tests/frontends/mpd/protocol/idle_test.py index 0f56cd61..0f5d4b06 100644 --- a/tests/frontends/mpd/protocol/idle_test.py +++ b/tests/frontends/mpd/protocol/idle_test.py @@ -63,7 +63,7 @@ class IdleHandlerTest(protocol.BaseTestCase): self.sendRequest(u'noidle') self.assertNoSubscriptions() self.assertNoEvents() - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_idle_then_noidle_enables_timeout(self): self.sendRequest(u'idle') @@ -93,39 +93,39 @@ class IdleHandlerTest(protocol.BaseTestCase): self.idleEvent(u'player') self.assertNoSubscriptions() self.assertNoEvents() - self.assertInResponse(u'changed: player') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: player') + self.assertOnceInResponse(u'OK') def test_idle_player_then_event_player(self): self.sendRequest(u'idle player') self.idleEvent(u'player') self.assertNoSubscriptions() self.assertNoEvents() - self.assertInResponse(u'changed: player') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: player') + self.assertOnceInResponse(u'OK') def test_idle_player_then_noidle(self): self.sendRequest(u'idle player') self.sendRequest(u'noidle') self.assertNoSubscriptions() self.assertNoEvents() - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_idle_player_playlist_then_noidle(self): self.sendRequest(u'idle player playlist') self.sendRequest(u'noidle') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_idle_player_playlist_then_player(self): self.sendRequest(u'idle player playlist') self.idleEvent(u'player') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'changed: player') + self.assertOnceInResponse(u'changed: player') self.assertNotInResponse(u'changed: playlist') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_idle_playlist_then_player(self): self.sendRequest(u'idle playlist') @@ -141,8 +141,8 @@ class IdleHandlerTest(protocol.BaseTestCase): self.assertNoEvents() self.assertNoSubscriptions() self.assertNotInResponse(u'changed: player') - self.assertInResponse(u'changed: playlist') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: playlist') + self.assertOnceInResponse(u'OK') def test_player(self): self.idleEvent(u'player') @@ -155,9 +155,9 @@ class IdleHandlerTest(protocol.BaseTestCase): self.sendRequest(u'idle player') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'changed: player') + self.assertOnceInResponse(u'changed: player') self.assertNotInResponse(u'changed: playlist') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_player_then_playlist(self): self.idleEvent(u'player') @@ -171,8 +171,8 @@ class IdleHandlerTest(protocol.BaseTestCase): self.sendRequest(u'idle') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'changed: player') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: player') + self.assertOnceInResponse(u'OK') def test_player_then_playlist_then_idle(self): self.idleEvent(u'player') @@ -180,9 +180,9 @@ class IdleHandlerTest(protocol.BaseTestCase): self.sendRequest(u'idle') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'changed: player') - self.assertInResponse(u'changed: playlist') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: player') + self.assertOnceInResponse(u'changed: playlist') + self.assertOnceInResponse(u'OK') def test_player_then_idle_playlist(self): self.idleEvent(u'player') @@ -197,7 +197,7 @@ class IdleHandlerTest(protocol.BaseTestCase): self.sendRequest(u'noidle') self.assertNoEvents() self.assertNoSubscriptions() - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'OK') def test_player_then_playlist_then_idle_playlist(self): self.idleEvent(u'player') @@ -206,5 +206,5 @@ class IdleHandlerTest(protocol.BaseTestCase): self.assertNoEvents() self.assertNoSubscriptions() self.assertNotInResponse(u'changed: player') - self.assertInResponse(u'changed: playlist') - self.assertInResponse(u'OK') + self.assertOnceInResponse(u'changed: playlist') + self.assertOnceInResponse(u'OK')