Use random album or artist to avoid problems running concurrent tests on CI

This commit is contained in:
hugovk 2014-03-02 14:01:08 +02:00
parent 6b47ae15b7
commit 6caed64f75

View file

@ -3,6 +3,7 @@
Integration (not unit) tests for pylast.py Integration (not unit) tests for pylast.py
""" """
import os import os
from random import choice
import time import time
import unittest import unittest
import yaml # pip install pyyaml import yaml # pip install pyyaml
@ -98,7 +99,11 @@ class TestPyLast(unittest.TestCase):
def test_remove_album(self): def test_remove_album(self):
# Arrange # Arrange
library = pylast.Library(user = self.username, network = self.network) library = pylast.Library(user = self.username, network = self.network)
album = self.network.get_album("Test Artist", "Test Album") # Pick an artist with plenty of albums
artist = self.network.get_top_artists()[0]
albums = artist.get_top_albums()
# Pick a random one to avoid problems running concurrent tests
album = choice(albums)[0]
library.add_album(album) library.add_album(album)
# Act # Act
@ -132,17 +137,20 @@ class TestPyLast(unittest.TestCase):
def test_remove_artist(self): def test_remove_artist(self):
# Arrange # Arrange
artist = "Test Artist 2" # Get plenty of artists
artists = self.network.get_top_artists()
# Pick a random one to avoid problems running concurrent tests
my_artist = choice(artists)
library = pylast.Library(user = self.username, network = self.network) library = pylast.Library(user = self.username, network = self.network)
library.add_artist(artist) library.add_artist(my_artist)
# Act # Act
library.remove_artist(artist) library.remove_artist(my_artist)
# Assert # Assert
artists = library.get_artists() artists = library.get_artists()
for artist in artists: for artist in artists:
value = (str(artist[0]) == "Test Artist 2") value = (artist[0] == my_artist)
if value: if value:
break break
self.assertFalse(value) self.assertFalse(value)
@ -374,7 +382,7 @@ class TestPyLast(unittest.TestCase):
if __name__ == '__main__': if __name__ == '__main__':
# For quick testing of a single-case (eg. test = "test_scrobble") # For quick testing of a single-case (eg. test = "test_scrobble")
test = "" test = "test_remove_artist"
if test is not None and len(test): if test is not None and len(test):
suite = unittest.TestSuite() suite = unittest.TestSuite()