Mercurial > libervia-backend
diff sat/test/test_plugin_misc_radiocol.py @ 4037:524856bd7b19
massive refactoring to switch from camelCase to snake_case:
historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a
pre-PEP8 code, to use the same coding style as in Twisted.
However, snake_case is more readable and it's better to follow PEP8 best practices, so it
has been decided to move on full snake_case. Because Libervia has a huge codebase, this
ended with a ugly mix of camelCase and snake_case.
To fix that, this patch does a big refactoring by renaming every function and method
(including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case.
This is a massive change, and may result in some bugs.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 08 Apr 2023 13:54:42 +0200 |
parents | 559a625a236b |
children |
line wrap: on
line diff
--- a/sat/test/test_plugin_misc_radiocol.py Fri Apr 07 15:18:39 2023 +0200 +++ b/sat/test/test_plugin_misc_radiocol.py Sat Apr 08 13:54:42 2023 +0200 @@ -73,10 +73,10 @@ self.host ) for profile in Const.PROFILE: - self.host.getClient(profile) # init self.host.profiles[profile] + self.host.get_client(profile) # init self.host.profiles[profile] self.songs = [] self.playlist = [] - self.sound_dir = self.host.memory.getConfig("", "media_dir") + "/test/sound/" + self.sound_dir = self.host.memory.config_get("", "media_dir") + "/test/sound/" try: for filename in os.listdir(self.sound_dir): if filename.endswith(".ogg") or filename.endswith(".mp3"): @@ -84,7 +84,7 @@ except OSError: raise SkipTest("The sound samples in sat_media/test/sound were not found") - def _buildPlayers(self, players=[]): + def _build_players(self, players=[]): """@return: the "started" content built with the given players""" content = "<started" if not players: @@ -96,7 +96,7 @@ content += "</started>" return content - def _expectedMessage(self, to_jid, type_, content): + def _expected_message(self, to_jid, type_, content): """ @param to_jid: recipient full jid @param type_: message type ('normal' or 'groupchat') @@ -118,56 +118,56 @@ plugin.RADIOC_TAG, ) - def _rejectSongCb(self, profile_index): + def _reject_song_cb(self, profile_index): """Check if the message "song_rejected" has been sent by the referee and process the command with the profile of the uploader @param profile_index: uploader's profile""" - sent = self.host.getSentMessage(0) + sent = self.host.get_sent_message(0) content = "<song_rejected xmlns='' reason='Too many songs in queue'/>" - self.assertEqualXML( + self.assert_equal_xml( sent.toXml(), - self._expectedMessage( + self._expected_message( JID( ROOM_JID.userhost() + "/" - + self.plugin_0045.getNick(0, profile_index), + + self.plugin_0045.get_nick(0, profile_index), "normal", content, ) ), ) - self._roomGameCmd( - sent, ["radiocolSongRejected", ROOM_JID.full(), "Too many songs in queue"] + self._room_game_cmd( + sent, ["radiocol_song_rejected", ROOM_JID.full(), "Too many songs in queue"] ) - def _noUploadCb(self): + def _no_upload_cb(self): """Check if the message "no_upload" has been sent by the referee and process the command with the profiles of each room users""" - sent = self.host.getSentMessage(0) + sent = self.host.get_sent_message(0) content = "<no_upload xmlns=''/>" - self.assertEqualXML( - sent.toXml(), self._expectedMessage(ROOM_JID, "groupchat", content) + self.assert_equal_xml( + sent.toXml(), self._expected_message(ROOM_JID, "groupchat", content) ) - self._roomGameCmd(sent, ["radiocolNoUpload", ROOM_JID.full()]) + self._room_game_cmd(sent, ["radiocol_no_upload", ROOM_JID.full()]) - def _uploadOkCb(self): + def _upload_ok_cb(self): """Check if the message "upload_ok" has been sent by the referee and process the command with the profiles of each room users""" - sent = self.host.getSentMessage(0) + sent = self.host.get_sent_message(0) content = "<upload_ok xmlns=''/>" - self.assertEqualXML( - sent.toXml(), self._expectedMessage(ROOM_JID, "groupchat", content) + self.assert_equal_xml( + sent.toXml(), self._expected_message(ROOM_JID, "groupchat", content) ) - self._roomGameCmd(sent, ["radiocolUploadOk", ROOM_JID.full()]) + self._room_game_cmd(sent, ["radiocol_upload_ok", ROOM_JID.full()]) - def _preloadCb(self, attrs, profile_index): + def _preload_cb(self, attrs, profile_index): """Check if the message "preload" has been sent by the referee and process the command with the profiles of each room users @param attrs: information dict about the song @param profile_index: profile index of the uploader """ - sent = self.host.getSentMessage(0) - attrs["sender"] = self.plugin_0045.getNick(0, profile_index) + sent = self.host.get_sent_message(0) + attrs["sender"] = self.plugin_0045.get_nick(0, profile_index) radiocol_elt = next(domish.generateElementsNamed(sent.elements(), "radiocol")) preload_elt = next(domish.generateElementsNamed( radiocol_elt.elements(), "preload" @@ -178,13 +178,13 @@ ) if sent.hasAttribute("from"): del sent["from"] - self.assertEqualXML( - sent.toXml(), self._expectedMessage(ROOM_JID, "groupchat", content) + self.assert_equal_xml( + sent.toXml(), self._expected_message(ROOM_JID, "groupchat", content) ) - self._roomGameCmd( + self._room_game_cmd( sent, [ - "radiocolPreload", + "radiocol_preload", ROOM_JID.full(), attrs["timestamp"], attrs["filename"], @@ -195,25 +195,25 @@ ], ) - def _playNextSongCb(self): + def _play_next_song_cb(self): """Check if the message "play" has been sent by the referee and process the command with the profiles of each room users""" - sent = self.host.getSentMessage(0) + sent = self.host.get_sent_message(0) filename = self.playlist.pop(0) content = "<play xmlns='' filename='%s' />" % filename - self.assertEqualXML( - sent.toXml(), self._expectedMessage(ROOM_JID, "groupchat", content) + self.assert_equal_xml( + sent.toXml(), self._expected_message(ROOM_JID, "groupchat", content) ) - self._roomGameCmd(sent, ["radiocolPlay", ROOM_JID.full(), filename]) + self._room_game_cmd(sent, ["radiocol_play", ROOM_JID.full(), filename]) game_data = self.plugin.games[ROOM_JID] if len(game_data["queue"]) == plugin.QUEUE_LIMIT - 1: - self._uploadOkCb() + self._upload_ok_cb() - def _addSongCb(self, d, filepath, profile_index): + def _add_song_cb(self, d, filepath, profile_index): """Check if the message "song_added" has been sent by the uploader and process the command with the profile of the referee - @param d: deferred value or failure got from self.plugin.radiocolSongAdded + @param d: deferred value or failure got from self.plugin.radiocol_song_added @param filepath: full path to the sound file @param profile_index: the profile index of the uploader """ @@ -250,9 +250,9 @@ content = "<song_added xmlns='' %s/>" % " ".join( ["%s='%s'" % (attr, attrs[attr]) for attr in attrs] ) - sent = self.host.getSentMessage(profile_index) - self.assertEqualXML( - sent.toXml(), self._expectedMessage(REFEREE_FULL, "normal", content) + sent = self.host.get_sent_message(profile_index) + self.assert_equal_xml( + sent.toXml(), self._expected_message(REFEREE_FULL, "normal", content) ) reject_song = len(game_data["queue"]) >= plugin.QUEUE_LIMIT @@ -262,20 +262,20 @@ and len(game_data["queue"]) + 1 == plugin.QUEUE_TO_START ) - self._roomGameCmd(sent, profile_index) # queue unchanged or +1 + self._room_game_cmd(sent, profile_index) # queue unchanged or +1 if reject_song: - self._rejectSongCb(profile_index) + self._reject_song_cb(profile_index) return if no_upload: - self._noUploadCb() - self._preloadCb(attrs, profile_index) + self._no_upload_cb() + self._preload_cb(attrs, profile_index) self.playlist.append(attrs["filename"]) if play_next: - self._playNextSongCb() # queue -1 + self._play_next_song_cb() # queue -1 - def _roomGameCmd(self, sent, from_index=0, call=[]): + def _room_game_cmd(self, sent, from_index=0, call=[]): """Process a command. It is also possible to call this method as - _roomGameCmd(sent, call) instead of _roomGameCmd(sent, from_index, call). + _room_game_cmd(sent, call) instead of _room_game_cmd(sent, from_index, call). If from index is a list, it is assumed that it is containing the value for call and from_index will take its default value. @param sent: the sent message that we need to process @@ -287,14 +287,14 @@ call = from_index from_index = 0 - sent["from"] = ROOM_JID.full() + "/" + self.plugin_0045.getNick(0, from_index) + sent["from"] = ROOM_JID.full() + "/" + self.plugin_0045.get_nick(0, from_index) recipient = JID(sent["to"]).resource # The message could have been sent to a room user (room_jid + '/' + nick), # but when it is received, the 'to' attribute of the message has been # changed to the recipient own JID. We need to simulate that here. if recipient: - room = self.plugin_0045.getRoom(0, 0) + room = self.plugin_0045.get_room(0, 0) sent["to"] = ( Const.JID_STR[0] if recipient == room.nick @@ -302,33 +302,33 @@ ) for index in range(0, len(Const.PROFILE)): - nick = self.plugin_0045.getNick(0, index) + nick = self.plugin_0045.get_nick(0, index) if nick: if not recipient or nick == recipient: if call and ( - self.plugin.isPlayer(ROOM_JID, nick) - or call[0] == "radiocolStarted" + self.plugin.is_player(ROOM_JID, nick) + or call[0] == "radiocol_started" ): args = copy.deepcopy(call) args.append(Const.PROFILE[index]) - self.host.bridge.expectCall(*args) + self.host.bridge.expect_call(*args) self.plugin.room_game_cmd(sent, Const.PROFILE[index]) - def _syncCb(self, sync_data, profile_index): + def _sync_cb(self, sync_data, profile_index): """Synchronize one player when he joins a running game. @param sync_data: result from self.plugin.getSyncData @param profile_index: index of the profile to be synchronized """ for nick in sync_data: - expected = self._expectedMessage( + expected = self._expected_message( JID(ROOM_JID.userhost() + "/" + nick), "normal", sync_data[nick] ) - sent = self.host.getSentMessage(0) - self.assertEqualXML(sent.toXml(), expected) + sent = self.host.get_sent_message(0) + self.assert_equal_xml(sent.toXml(), expected) for elt in sync_data[nick]: if elt.name == "preload": - self.host.bridge.expectCall( - "radiocolPreload", + self.host.bridge.expect_call( + "radiocol_preload", ROOM_JID.full(), elt["timestamp"], elt["filename"], @@ -339,48 +339,48 @@ Const.PROFILE[profile_index], ) elif elt.name == "play": - self.host.bridge.expectCall( - "radiocolPlay", + self.host.bridge.expect_call( + "radiocol_play", ROOM_JID.full(), elt["filename"], Const.PROFILE[profile_index], ) elif elt.name == "no_upload": - self.host.bridge.expectCall( - "radiocolNoUpload", ROOM_JID.full(), Const.PROFILE[profile_index] + self.host.bridge.expect_call( + "radiocol_no_upload", ROOM_JID.full(), Const.PROFILE[profile_index] ) sync_data[nick] - self._roomGameCmd(sent, []) + self._room_game_cmd(sent, []) - def _joinRoom(self, room, nicks, player_index, sync=True): + def _join_room(self, room, nicks, player_index, sync=True): """Make a player join a room and update the list of nicks @param room: wokkel.muc.Room instance from the referee perspective @param nicks: list of the players which will be updated @param player_index: profile index of the new player @param sync: set to True to synchronize data """ - user_nick = self.plugin_0045.joinRoom(0, player_index) - self.plugin.userJoinedTrigger(room, room.roster[user_nick], PROFILE) + user_nick = self.plugin_0045.join_room(0, player_index) + self.plugin.user_joined_trigger(room, room.roster[user_nick], PROFILE) if player_index not in PLAYERS_INDICES: # this user is actually not a player - self.assertFalse(self.plugin.isPlayer(ROOM_JID, user_nick)) + self.assertFalse(self.plugin.is_player(ROOM_JID, user_nick)) to_jid, type_ = (JID(ROOM_JID.userhost() + "/" + user_nick), "normal") else: # this user is a player - self.assertTrue(self.plugin.isPlayer(ROOM_JID, user_nick)) + self.assertTrue(self.plugin.is_player(ROOM_JID, user_nick)) nicks.append(user_nick) to_jid, type_ = (ROOM_JID, "groupchat") # Check that the message "players" has been sent by the referee - expected = self._expectedMessage(to_jid, type_, self._buildPlayers(nicks)) - sent = self.host.getSentMessage(0) - self.assertEqualXML(sent.toXml(), expected) + expected = self._expected_message(to_jid, type_, self._build_players(nicks)) + sent = self.host.get_sent_message(0) + self.assert_equal_xml(sent.toXml(), expected) # Process the command with the profiles of each room users - self._roomGameCmd( + self._room_game_cmd( sent, [ - "radiocolStarted", + "radiocol_started", ROOM_JID.full(), REFEREE_FULL.full(), nicks, @@ -389,21 +389,21 @@ ) if sync: - self._syncCb(self.plugin._getSyncData(ROOM_JID, [user_nick]), player_index) + self._sync_cb(self.plugin._get_sync_data(ROOM_JID, [user_nick]), player_index) - def _leaveRoom(self, room, nicks, player_index): + def _leave_room(self, room, nicks, player_index): """Make a player leave a room and update the list of nicks @param room: wokkel.muc.Room instance from the referee perspective @param nicks: list of the players which will be updated @param player_index: profile index of the new player """ - user_nick = self.plugin_0045.getNick(0, player_index) + user_nick = self.plugin_0045.get_nick(0, player_index) user = room.roster[user_nick] - self.plugin_0045.leaveRoom(0, player_index) - self.plugin.userLeftTrigger(room, user, PROFILE) + self.plugin_0045.leave_room(0, player_index) + self.plugin.user_left_trigger(room, user, PROFILE) nicks.remove(user_nick) - def _uploadSong(self, song_index, profile_index): + def _upload_song(self, song_index, profile_index): """Upload the song of index song_index (modulo self.songs size) from the profile of index profile_index. @param song_index: index of the song or None to test with non existing file @@ -420,7 +420,7 @@ expect_io_error = False try: - d = self.plugin.radiocolSongAdded( + d = self.plugin.radiocol_song_added( REFEREE_FULL, dst_filepath, Const.PROFILE[profile_index] ) except IOError: @@ -428,7 +428,7 @@ return self.assertFalse(expect_io_error) - cb = lambda defer: self._addSongCb(defer, dst_filepath, profile_index) + cb = lambda defer: self._add_song_cb(defer, dst_filepath, profile_index) def eb(failure): if not isinstance(failure, Failure): @@ -451,20 +451,20 @@ self.reinit() # create game - self.plugin.prepareRoom(OTHER_PLAYERS, ROOM_JID, PROFILE) - self.assertTrue(self.plugin._gameExists(ROOM_JID, True)) - room = self.plugin_0045.getRoom(0, 0) - nicks = [self.plugin_0045.getNick(0, 0)] + self.plugin.prepare_room(OTHER_PLAYERS, ROOM_JID, PROFILE) + self.assertTrue(self.plugin._game_exists(ROOM_JID, True)) + room = self.plugin_0045.get_room(0, 0) + nicks = [self.plugin_0045.get_nick(0, 0)] - sent = self.host.getSentMessage(0) - self.assertEqualXML( + sent = self.host.get_sent_message(0) + self.assert_equal_xml( sent.toXml(), - self._expectedMessage(ROOM_JID, "groupchat", self._buildPlayers(nicks)), + self._expected_message(ROOM_JID, "groupchat", self._build_players(nicks)), ) - self._roomGameCmd( + self._room_game_cmd( sent, [ - "radiocolStarted", + "radiocol_started", ROOM_JID.full(), REFEREE_FULL.full(), nicks, @@ -472,42 +472,42 @@ ], ) - self._joinRoom(room, nicks, 1) # player joins - self._joinRoom(room, nicks, 4) # user not playing joins + self._join_room(room, nicks, 1) # player joins + self._join_room(room, nicks, 4) # user not playing joins song_index = 0 - self._uploadSong( + self._upload_song( song_index, 0 ) # ogg or mp3 file should exist in sat_media/test/song - self._uploadSong(None, 0) # non existing file + self._upload_song(None, 0) # non existing file # another songs are added by Const.JID[1] until the radio starts + 1 to fill the queue # when the first song starts + 1 to be rejected because the queue is full for song_index in range(1, plugin.QUEUE_TO_START + 1): - self._uploadSong(song_index, 1) + self._upload_song(song_index, 1) - self.plugin.playNext(Const.MUC[0], PROFILE) # simulate the end of the first song - self._playNextSongCb() - self._uploadSong( + self.plugin.play_next(Const.MUC[0], PROFILE) # simulate the end of the first song + self._play_next_song_cb() + self._upload_song( song_index, 1 ) # now the song is accepted and the queue is full again - self._joinRoom(room, nicks, 3) # new player joins + self._join_room(room, nicks, 3) # new player joins - self.plugin.playNext(Const.MUC[0], PROFILE) # the second song finishes - self._playNextSongCb() - self._uploadSong(0, 3) # the player who recently joined re-upload the first file + self.plugin.play_next(Const.MUC[0], PROFILE) # the second song finishes + self._play_next_song_cb() + self._upload_song(0, 3) # the player who recently joined re-upload the first file - self._leaveRoom(room, nicks, 1) # one player leaves - self._joinRoom(room, nicks, 1) # and join again + self._leave_room(room, nicks, 1) # one player leaves + self._join_room(room, nicks, 1) # and join again - self.plugin.playNext(Const.MUC[0], PROFILE) # empty the queue - self._playNextSongCb() - self.plugin.playNext(Const.MUC[0], PROFILE) - self._playNextSongCb() + self.plugin.play_next(Const.MUC[0], PROFILE) # empty the queue + self._play_next_song_cb() + self.plugin.play_next(Const.MUC[0], PROFILE) + self._play_next_song_cb() for filename in self.playlist: - self.plugin.deleteFile("/tmp/" + filename) + self.plugin.delete_file("/tmp/" + filename) return defer.succeed(None)