import json import os class FixtureBuilder: def __init__(self, query_responses, application): self.responses = query_responses self.application = application self.pages = self.list_pages(query_responses) @staticmethod def list_pages(query_responses): pages = [] for response in query_responses: if response["page"] not in pages: pages.append(response["page"]) return pages @staticmethod def get_output_location(): if 'CYPRESS_CUKES_REPO_PATH' in os.environ: cukes_repo = os.environ.get('CYPRESS_CUKES_REPO_PATH') path = f"{cukes_repo}/cypress/fixtures/graphQl/" \ f"responses/" else: path = "output/" return path def build(self): output = {} for page in self.pages: output[page] = [] for response in self.responses: simplified_resp = response.copy() del simplified_resp["page"] output[response["page"]].append(simplified_resp) self.output_json_file(output) def output_json_file(self, output_dict): file_path = self.get_output_location() for page in self.pages: filename = f"{file_path}{self.application}/{page}-responses.json" os.makedirs(os.path.dirname(filename), exist_ok=True) f = open(filename, "w") f.write(json.dumps(output_dict[page]))