golift.io/starr@v1.0.0/starrcmd/radarr_test.go (about) 1 //nolint:paralleltest,cyclop 2 package starrcmd_test 3 4 import ( 5 "os" 6 "testing" 7 8 "golift.io/starr/starrcmd" 9 ) 10 11 func TestRadarrApplicationUpdate(t *testing.T) { 12 t.Setenv("radarr_eventtype", string(starrcmd.EventApplicationUpdate)) 13 t.Setenv("radarr_update_previousversion", "4.0.3.5875") 14 t.Setenv("radarr_update_newversion", "4.0.4.5909") 15 t.Setenv("radarr_update_message", "Radarr updated from 4.0.3.5875 to 4.0.4.5909") 16 17 cmd, err := starrcmd.New() 18 if err != nil { 19 t.Fatalf("got an unexpected error: %s", err) 20 } 21 22 switch info, err := cmd.GetRadarrApplicationUpdate(); { 23 case err != nil: 24 t.Fatalf("got an unexpected error: %s", err) 25 case info.Message != os.Getenv("radarr_update_message"): 26 t.Fatalf("got wrong Message? %s", info.Message) 27 case info.NewVersion != "4.0.4.5909": 28 t.Fatalf("got wrong new version? wanted: '4.0.4.5909' got: %s", info.Message) 29 case info.PreviousVersion != "4.0.3.5875": 30 t.Fatalf("got wrong Message? wanted: '4.0.3.5875' got: %s", info.Message) 31 } 32 } 33 34 func TestRadarrHealthIssue(t *testing.T) { 35 t.Setenv("radarr_eventtype", string(starrcmd.EventHealthIssue)) 36 t.Setenv("radarr_health_issue_type", "ImportListStatusCheck") 37 t.Setenv("radarr_health_issue_wiki", "https://wiki.servarr.com/") 38 t.Setenv("radarr_health_issue_level", "Warning") 39 t.Setenv("radarr_health_issue_message", "Lists unavailable due to failures: List name here") 40 41 cmd, err := starrcmd.New() 42 if err != nil { 43 t.Fatalf("got an unexpected error: %s", err) 44 } 45 46 switch info, err := cmd.GetRadarrHealthIssue(); { 47 case err != nil: 48 t.Fatalf("got an unexpected error: %s", err) 49 case info.Message != os.Getenv("radarr_health_issue_message"): 50 t.Fatalf("got wrong Message? %s", info.Message) 51 case info.Wiki != "https://wiki.servarr.com/": 52 t.Fatalf("got wrong wiki link? wanted: 'https://wiki.servarr.com/' got: %s", info.Wiki) 53 case info.Level != "Warning": 54 t.Fatalf("got wrong level? wanted: 'Warning' got: %s", info.Level) 55 case info.IssueType != "ImportListStatusCheck": 56 t.Fatalf("got wrong issue type? wanted: 'ImportListStatusCheck' got: %s", info.IssueType) 57 } 58 } 59 60 func TestRadarrTest(t *testing.T) { 61 t.Setenv("radarr_eventtype", string(starrcmd.EventTest)) 62 63 cmd, err := starrcmd.New() 64 if err != nil { 65 t.Fatalf("got an unexpected error: %s", err) 66 } 67 68 switch info, err := cmd.GetRadarrTest(); { 69 case err != nil: 70 t.Fatalf("got an unexpected error: %s", err) 71 case info != starrcmd.RadarrTest{}: 72 t.Fatalf("got an wrong structure in return") 73 } 74 } 75 76 func TestRadarrGrab(t *testing.T) { 77 // XXX: This isn't everything, should add the rest. 78 // Also write another test that purposely doesn't add everything to catch a different regression. 79 t.Setenv("radarr_eventtype", string(starrcmd.EventGrab)) 80 t.Setenv("radarr_release_qualityversion", "1") 81 t.Setenv("radarr_movie_physical_release_date", "1/19/2006 12:00:00 AM") 82 t.Setenv("radarr_release_releasegroup", "SLOWPOKE") 83 t.Setenv("radarr_movie_id", "1234544") 84 t.Setenv("radarr_indexerflags", "3") 85 t.Setenv("radarr_movie_imdbid", "tt044817") 86 t.Setenv("radarr_download_id", "E63FAFFAAA0DEE42F0846348A9C0657BC53E7AA5") 87 t.Setenv("radarr_release_title", "Some damn movie") 88 t.Setenv("radarr_movie_in_cinemas_date", "11/22/2005 12:00:00 AM") 89 t.Setenv("radarr_movie_year", "2012") 90 t.Setenv("radarr_release_indexer", "Indexinator (Prowlarr)") 91 t.Setenv("radarr_movie_title", "XxX") 92 t.Setenv("radarr_release_size", "123456778") 93 t.Setenv("radarr_download_client", "Qbot") 94 95 cmd, err := starrcmd.New() 96 if err != nil { 97 t.Fatalf("got an unexpected error: %s", err) 98 } 99 100 switch info, err := cmd.GetRadarrGrab(); { 101 case err != nil: 102 t.Fatalf("got an unexpected error: %s", err) 103 case info.QualityVersion != int64(1): 104 t.Fatalf("got wrong quality version? wanted: 1, got: %d", info.QualityVersion) 105 case info.ID != int64(1234544): 106 t.Fatalf("got wrong id? wanted: 1234544, got: %v", info.ID) 107 case info.Year != 2012: 108 t.Fatalf("got wrong year? wanted 2012: got: %v", info.Year) 109 case info.ReleaseGroup != "SLOWPOKE": 110 t.Fatalf("got wrong release group? wanted: SLOWPOKE, got: %v", info.ReleaseGroup) 111 case info.IMDbID != "tt044817": 112 t.Fatalf("got wrong imdb id? wanted: tt044817, got: %v", info.IMDbID) 113 case info.IndexerFlags != 3: 114 t.Fatalf("got wrong indexer flags? wanted: 3, got: %v", info.IndexerFlags) 115 /* case info.ReleaseDate != ???: 116 t.Fatalf("got wrong release date? wanted: got: %v", info.Year) 117 case info.InCinemas != ???: 118 t.Fatalf("got wrong cinema date? wanted: got: %v", info.Year) */ 119 case info.Title != "XxX": 120 t.Fatalf("got wrong title? wanted: XxX, got: %v", info.Title) 121 case info.DownloadID != "E63FAFFAAA0DEE42F0846348A9C0657BC53E7AA5": 122 t.Fatalf("got wrong download id? wanted: E63FAFFAAA0DEE42F0846348A9C0657BC53E7AA5, got: %v", info.DownloadID) 123 case info.DownloadClient != "Qbot": 124 t.Fatalf("got wrong download client? wanted: Qbot, got: %v", info.DownloadClient) 125 case info.ReleaseIndexer != "Indexinator (Prowlarr)": 126 t.Fatalf("got wrong release indexer? wanted: Indexinator (Prowlarr), got: %v", info.ReleaseIndexer) 127 case info.Size != 123456778: 128 t.Fatalf("got wrong release size? wanted: 123456778, got: %v", info.Size) 129 } 130 } 131 132 func TestRadarrRename(t *testing.T) { 133 // This isn't everything, but it's most.. 134 t.Setenv("radarr_eventtype", string(starrcmd.EventRename)) 135 t.Setenv("radarr_movie_id", "123456") 136 t.Setenv("radarr_movie_year", "2099") 137 t.Setenv("radarr_movie_path", "/gohome") 138 t.Setenv("radarr_movie_imdbid", "tt4444") 139 t.Setenv("radarr_movie_tmdbid", "23123123") 140 t.Setenv("radarr_movie_in_cinemas_date", "12/2/2025 01:21:24 AM") 141 t.Setenv("radarr_movie_physical_release_date", "4/20/2023 04:21:54 PM") 142 t.Setenv("radarr_moviefile_ids", "3,4,5,6,7,8") 143 t.Setenv("radarr_moviefile_relativepaths", "/here|/there|/every/where") 144 t.Setenv("radarr_moviefile_paths", "/movie/path") 145 t.Setenv("radarr_moviefile_previousrelativepaths", "/none") 146 t.Setenv("radarr_moviefile_previouspaths", "/really|/none") 147 148 cmd, err := starrcmd.New() 149 if err != nil { 150 t.Fatalf("got an unexpected error: %s", err) 151 } 152 153 switch info, err := cmd.GetRadarrRename(); { 154 case err != nil: 155 t.Fatalf("got an unexpected error: %s", err) 156 case info.ID != int64(123456): 157 t.Fatalf("got wrong id? wanted: 12345, got: %v", info.ID) 158 case info.Year != 2099: 159 t.Fatalf("got wrong year? wanted 2013: got: %v", info.Year) 160 case info.Path != "/gohome": 161 t.Fatalf("got wrong path? wanted: /here, got: %v", info.Path) 162 case info.IMDbID != "tt4444": 163 t.Fatalf("got wrong imdb id? wanted: tt4444, got: %v", info.IMDbID) 164 case info.TMDbID != 23123123: 165 t.Fatalf("got wrong tmdb id? wanted: 23123123, got: %v", info.TMDbID) 166 /* case info.ReleaseDate != ???: 167 t.Fatalf("got wrong release date? wanted: got: %v", info.Year) 168 case info.InCinemas != ???: 169 t.Fatalf("got wrong cinema date? wanted: got: %v", info.Year) */ 170 case len(info.FileIDs) != 6 || info.FileIDs[0] != 3 || info.FileIDs[5] != 8: 171 t.Fatalf("got wrong files ids? wanted: 3,4,5,6,7,8, got: %v", info.FileIDs) 172 case len(info.RelativePaths) != 3 || info.RelativePaths[0] != "/here": 173 t.Fatalf("got wrong relative paths? got: %v", info.RelativePaths) 174 case len(info.PreviousRelativePaths) != 1 || info.PreviousRelativePaths[0] != "/none": 175 t.Fatalf("got wrong previous relative pats? got: %v", info.PreviousRelativePaths) 176 case len(info.PreviousPaths) != 2 || info.PreviousPaths[1] != "/none": 177 t.Fatalf("got wrong previous paths? got: %v", info.PreviousPaths) 178 } 179 } 180 181 func TestRadarrDownload(t *testing.T) { 182 t.Setenv("radarr_eventtype", string(starrcmd.EventDownload)) 183 t.Setenv("radarr_movie_physical_release_date", "") 184 t.Setenv("radarr_moviefile_path", "/movies/Just Go with It (2011)/Just.Go.with.It.2011.Bluray-1080p.mkv") 185 t.Setenv("radarr_movie_imdbid", "tt1564367") 186 t.Setenv("radarr_moviefile_scenename", "Just.Go.with.It.2011.1080p.BluRay.x264-OFT") 187 t.Setenv("radarr_moviefile_id", "3594") 188 t.Setenv("radarr_moviefile_releasegroup", "OFT") 189 t.Setenv("radarr_download_id", "string F3D870942BFDD643488852284E917336170CEA00") 190 t.Setenv("radarr_movie_in_cinemas_date", "2/10/2011 12:00:00 AM") 191 t.Setenv("radarr_moviefile_sourcefolder", "/downloads/Seeding/Just.Go.with.It.2011.1080p.BluRay.x264-OFT") 192 t.Setenv("radarr_movie_year", "2011") 193 t.Setenv("radarr_isupgrade", "False") 194 t.Setenv("radarr_movie_path", "/movies/Just Go with It (2011)") 195 t.Setenv("radarr_moviefile_relativepath", "Just.Go.with.It.2011.Bluray-1080p.mkv") 196 t.Setenv("radarr_download_client", "Deluge") 197 t.Setenv("radarr_moviefile_sourcepath", "/downloads/Seeding/Just.Go.with.It/Just.Go.with.It.2011.x264-OFT.mkv") 198 t.Setenv("radarr_movie_tmdbid", "50546") 199 t.Setenv("radarr_movie_id", "924") 200 t.Setenv("radarr_moviefile_quality", "Bluray-1080p") 201 t.Setenv("radarr_movie_title", "Just Go with It") 202 t.Setenv("radarr_moviefile_qualityversion", "1") 203 t.Setenv("radarr_deletedrelativepaths", "1") 204 t.Setenv("radarr_deletedpaths", "1") 205 206 cmd, err := starrcmd.New() 207 if err != nil { 208 t.Fatalf("got an unexpected error: %s", err) 209 } 210 211 switch info, err := cmd.GetRadarrDownload(); { 212 case err != nil: 213 t.Fatalf("got an unexpected error: %s", err) 214 case info.IMDbID != "tt1564367": 215 t.Fatalf("got an wrong IMDBID? wanted: 'tt1564367', got: %v", info.IMDbID) 216 } 217 } 218 219 func TestRadarrMovieFileDelete(t *testing.T) { 220 t.Setenv("radarr_eventtype", string(starrcmd.EventMovieFileDelete)) 221 222 t.Setenv("radarr_moviefile_deletereason", "Upgrade") 223 t.Setenv("radarr_moviefile_path", "/movies/The French Dispatch (2021)/The.French.Dispatch.2021.Bluray-720p.mkv") 224 t.Setenv("radarr_moviefile_scenename", "The.French.Dispatch.2021.720p.BluRay.x264-WoAT") 225 t.Setenv("radarr_movie_imdbid", "tt1564368") 226 t.Setenv("radarr_moviefile_id", "3531") 227 t.Setenv("radarr_moviefile_releasegroup", "WoAT") 228 t.Setenv("radarr_movie_year", "2021") 229 t.Setenv("radarr_movie_path", "/movies/The French Dispatch (2021)") 230 t.Setenv("radarr_moviefile_relativepath", "The.French.Dispatch.2021.Bluray-720p.mkv") 231 t.Setenv("radarr_moviefile_size", "3593317970") 232 t.Setenv("radarr_movie_tmdbid", "542178") 233 t.Setenv("radarr_movie_id", "2173") 234 t.Setenv("radarr_moviefile_quality", "Bluray-720p") 235 t.Setenv("radarr_movie_title", "The French Dispatch") 236 t.Setenv("radarr_moviefile_qualityversion", "1") 237 238 cmd, err := starrcmd.New() 239 if err != nil { 240 t.Fatalf("got an unexpected error: %s", err) 241 } 242 243 switch info, err := cmd.GetRadarrMovieFileDelete(); { 244 case err != nil: 245 t.Fatalf("got an unexpected error: %s", err) 246 case info.IMDbID != "tt1564368": 247 t.Fatalf("got an wrong IMDBID? wanted: 'tt1564368', got: %v", info.IMDbID) 248 } 249 } 250 251 func TestRadarrMovieDelete(t *testing.T) { 252 t.Setenv("radarr_eventtype", string(starrcmd.EventMovieDelete)) 253 254 t.Setenv("radarr_movie_id", "2173") 255 t.Setenv("radarr_movie_title", "The French Dispatch") 256 t.Setenv("radarr_movie_year", "2021") 257 t.Setenv("radarr_movie_path", "/movies/The French Dispatch (2021)") 258 t.Setenv("radarr_movie_imdbid", "tt1564397") 259 t.Setenv("radarr_movie_tmdbid", "542178") 260 t.Setenv("radarr_movie_folder_size", "3593317970") 261 t.Setenv("radarr_movie_deletedfiles", "XXX: no example. Does this need a split?") 262 263 cmd, err := starrcmd.New() 264 if err != nil { 265 t.Fatalf("got an unexpected error: %s", err) 266 } 267 268 switch info, err := cmd.GetRadarrMovieDelete(); { 269 case err != nil: 270 t.Fatalf("got an unexpected error: %s", err) 271 case info.IMDbID != "tt1564397": 272 t.Fatalf("got an wrong IMDBID? wanted: 'tt1564397', got: %v", info.IMDbID) 273 } 274 }