Uses sfdx force:org:delete to delete the org

def delete_org(self):
        """ Uses sfdx force:org:delete to delete the org """
        if not self.created:
            self.logger.info(
                "Skipping org deletion: the scratch org has not been created"
            )
            return

        command = sarge.shell_format("sfdx force:org:delete -p -u {0}", self.username)
        self.logger.info("Deleting scratch org with command {}".format(command))
        p = sarge.Command(command, stdout=sarge.Capture(buffer_size=-1), shell=True)
        p.run()

        stdout = []
        for line in io.TextIOWrapper(p.stdout):
            stdout.append(line)
            if line.startswith("An error occurred deleting this org"):
                self.logger.error(line)
            else:
                self.logger.info(line)

        if p.returncode:
            message = "Failed to delete scratch org: \n{}".format("".join(stdout))
            raise ScratchOrgException(message)

        # Flag that this org has been deleted
        self.config["created"] = False
        self.config["username"] = None
        self.config["date_created"] = None