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
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-14 23:08 +0000
1"""Module for track class."""
4class Track:
5 """Class representing a track."""
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.")
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}'
41 def get_track_name(self):
42 """Function returns track_name."""
43 return self.track_name