# Check the mark.log file that is generated by the CI to make sure it contains the expected values import os def read_marklog(): marklog = os.path.join(os.getcwd(), "mark.log") with open(marklog, "r") as f: lines = f.readlines() return lines def check_marklog(lines, expected_values): try: # Check to make sure the marklog contains all the expected values and nothing else found_values = [] for line in lines: # Remove the newline character line = line.strip() if line not in expected_values: raise Exception("Line not found in marklog: " + line) found_values.append(line) # Check to make sure the marklog contains the same number of values as the expected values if len(found_values) != len(expected_values): raise Exception( "Marklog did not contain the same number of values as the expected values, found " + str(len(found_values)) + " values, expected " + str(len(expected_values)) + " values" ) # Check that the two lists contain the same values if sorted(found_values) != sorted(expected_values): raise Exception( "Marklog did not contain the same values as the expected values, found:\n" + "\n".join(sorted(found_values)) + "\n\nExpected:\n" + "\n".join(sorted(expected_values)) ) return True except Exception as e: print(e) return False def main(): expected_values = [ "jellyplex_watched/Movies/Five Nights at Freddy's", "jellyplex_watched/Movies/The Hunger Games: The Ballad of Songbirds & Snakes/301215", "jellyplex_watched/TV Shows/Doctor Who (2005)/Rose", "jellyplex_watched/TV Shows/Doctor Who (2005)/The End of the World/300670", "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Aftermath", "jellyplex_watched/TV Shows/Monarch: Legacy of Monsters/Departure/300741", "JellyUser/Movies/Big Buck Bunny", "JellyUser/Shows/Doctor Who/The Unquiet Dead", "JellyUser/Shows/Monarch: Legacy of Monsters/Secrets and Lies", ] # Triple the expected values because the CI runs three times expected_values = expected_values * 3 lines = read_marklog() if not check_marklog(lines, expected_values): print("Failed to validate marklog") exit(1) print("Successfully validated marklog") exit(0) if __name__ == "__main__": main()