Make tests check that response only has values once, fixes double OK bug

This commit is contained in:
Thomas Adamcik 2011-07-23 03:58:26 +02:00
parent 63dba5553f
commit 0e58d771cd
3 changed files with 26 additions and 23 deletions

View File

@ -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$')

View File

@ -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)))

View File

@ -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')