class TestSeasonEpisodesInsert(TestCase, metaclass=TestSeasonEpisodesInsertMetaClass):
  def setUp(self):
    self.sut = EpisodesNamesInsert()

  def tearDown(self):
    self.sut = None

  def createTestSuiteData(self, settings):
    directory = settings["folder"]
    if os.path.exists(directory):
      shutil.rmtree(directory)
    os.mkdir(directory)
    for file in settings["episodes"]:
      file = os.path.join(directory, file)
      open(file, 'a').close()
    episode_file = os.path.join(directory,EPISODE_FILE)
    if os.path.exists(episode_file):
      os.remove(episode_file)
    fp = open(episode_file, "w+")
    for name in settings["episodes_names"]:
      fp.write(name+"\n")
    fp.close()

  def test_double_name_apply(self):
    #Given
    settings = json.loads(open("test_suite_darker.json").read())
    self.createTestSuiteData(settings)
    #When
    self.sut.process(settings["folder"])
    self.sut.process(settings["folder"])
    #Them
    target_episodes_names = settings["target_episodes"]
    files_list = os.listdir(settings["folder"])
    for file in files_list:
      if file == EPISODE_FILE:
        continue
      self.assertTrue(file in target_episodes_names, str("Testing "+file+" with "+target_episodes_names[0]))
    shutil.rmtree(settings["folder"])

  def test_double_name_apply(self):
    #Given
    settings = json.loads(open("test_suite_darker.json").read())
    self.createTestSuiteData(settings)
    #When
    self.sut.process(settings["folder"])
    self.sut.process(settings["folder"])
    #Them
    target_episodes_names = settings["target_episodes"]
    files_list = os.listdir(settings["folder"])
    for file in files_list:
      if file == EPISODE_FILE:
        continue
      self.assertTrue(file in target_episodes_names, str("Testing '"+file+"' with '"+target_episodes_names[0]+"'"))
    shutil.rmtree(settings["folder"])

  def test_name_for_file_with_episode_name(self):
    #Given #When
    new_filename = self.sut.name_for_file_with_episode_name("15 [BD][720p][AAC].mp4", "Who Wants to be in Jeopardy? (Nightmare Quiz Show)")
    #Them
    self.assertEqual (new_filename, "15.Who Wants to be in Jeopardy. (Nightmare Quiz Show).[BD][720p][AAC].mp4")
 def setUp(self):
   self.sut = EpisodesNamesInsert()