Coverage for src/aggregator/classes/track.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-05-14 23:08 +0000

1"""Module for track class.""" 

2 

3 

4class Track: 

5 """Class representing a track.""" 

6 

7 def __init__(self, track_name, track_id, artists, albums, duration_ms, explicit, 

8 popularity=None, acousticness=None, danceability=None, energy=None, 

9 instrumentalness=None, key=None, liveness=None, loudness=None, 

10 mode=None, speechiness=None, tempo=None, time_signature=None, valence=None): 

11 self.track_name = track_name 

12 self.track_id = track_id 

13 self.artists = artists 

14 self.albums = albums 

15 self.duration_ms = duration_ms 

16 self.explicit = explicit 

17 self.popularity = popularity 

18 self.acousticness = acousticness 

19 self.danceability = danceability 

20 self.energy = energy 

21 self.instrumentalness = instrumentalness 

22 self.key = key 

23 self.liveness = liveness 

24 self.loudness = loudness 

25 self.mode = mode 

26 self.speechiness = speechiness 

27 self.tempo = tempo 

28 self.time_signature = time_signature 

29 self.valence = valence 

30 if type(track_name) is not str: 

31 raise TypeError("Track name must be string.") 

32 

33 def __str__(self): 

34 return f'{self.track_name} {self.track_id} {self.artists} {self.albums}' \ 

35 f' {self.duration_ms} {self.explicit} {self.popularity}' \ 

36 f' {self.acousticness} {self.danceability} {self.energy}' \ 

37 f' {self.instrumentalness} {self.key} {self.liveness} {self.loudness}' \ 

38 f' {self.mode} {self.speechiness} {self.tempo} {self.time_signature}' \ 

39 f' {self.valence}' 

40 

41 def get_track_name(self): 

42 """Function returns track_name.""" 

43 return self.track_name