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  }