def add_files(self): """ Checks for the flags '--all', '--new' and '--sagenb'. For each one present, this function adds the appropriate directories and files to the todo list. EXAMPLES:: sage: from sage.doctest.control import DocTestDefaults, DocTestController sage: from sage.env import SAGE_SRC sage: import os sage: log_location = os.path.join(SAGE_TMP, 'control_dt_log.log') sage: DD = DocTestDefaults(all=True, logfile=log_location) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting entire Sage library. sage: os.path.join(SAGE_SRC, 'sage') in DC.files True :: sage: DD = DocTestDefaults(new = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting files changed since last HG commit. sage: len(DC.files) == len([L for L in hg_sage('status', interactive=False, debug=False)[0].split('\n') if len(L.split()) ==2 and L.split()[0] in ['M','A']]) True :: sage: DD = DocTestDefaults(sagenb = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting the Sage notebook. sage: DC.files[0][-6:] 'sagenb' """ opj = os.path.join from sage.env import SAGE_SRC as base if self.options.all: self.log("Doctesting entire Sage library.") from glob import glob self.files.append(opj(base, 'sage')) self.files.append(opj(base, 'doc', 'common')) self.files.extend(glob(opj(base, 'doc', '[a-z][a-z]'))) self.options.sagenb = True elif self.options.new: self.log("Doctesting files changed since last HG commit.") import sage.all_cmdline from sage.misc.hg import hg_sage for X in hg_sage('status', interactive=False, debug=False)[0].split('\n'): tup = X.split() if len(tup) != 2: continue c, filename = tup if c in ['M', 'A']: filename = opj(base, filename) self.files.append(filename) if self.options.sagenb: if not self.options.all: self.log("Doctesting the Sage notebook.") from pkg_resources import Requirement, working_set sagenb_loc = working_set.find(Requirement.parse('sagenb')).location self.files.append(opj(sagenb_loc, 'sagenb'))
def add_files(self): r""" Checks for the flags '--all', '--new' and '--sagenb'. For each one present, this function adds the appropriate directories and files to the todo list. EXAMPLES:: sage: from sage.doctest.control import DocTestDefaults, DocTestController sage: from sage.env import SAGE_SRC sage: import os sage: log_location = os.path.join(SAGE_TMP, 'control_dt_log.log') sage: DD = DocTestDefaults(all=True, logfile=log_location) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting entire Sage library. sage: os.path.join(SAGE_SRC, 'sage') in DC.files True :: sage: DD = DocTestDefaults(new = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting files ... :: sage: DD = DocTestDefaults(sagenb = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting the Sage notebook. sage: DC.files[0][-6:] 'sagenb' """ opj = os.path.join from sage.env import SAGE_SRC if self.options.all: self.log("Doctesting entire Sage library.") from glob import glob self.files.append(opj(SAGE_SRC, 'sage')) self.files.append(opj(SAGE_SRC, 'doc', 'common')) self.files.extend(glob(opj(SAGE_SRC, 'doc', '[a-z][a-z]'))) self.options.sagenb = True elif self.options.new: # Get all files changed in the working repo, as well as all # files in the top Mercurial queue patch. from sage.misc.hg import hg_sage out, err = hg_sage('status --rev qtip^', interactive=False, debug=False) if not err: qtop = hg_sage('qtop', interactive=False, debug=False)[0].strip() self.log("Doctesting files in mq patch " + repr(qtop)) else: # Probably mq isn't used out, err = hg_sage('status', interactive=False, debug=False) if not err: self.log("Doctesting files changed since last hg commit") else: raise RuntimeError("failed to run hg status:\n" + err) for X in out.split('\n'): tup = X.split() if len(tup) != 2: continue c, filename = tup if c in ['M','A']: filename = opj(SAGE_SRC, filename) if not skipfile(filename): self.files.append(filename) if self.options.sagenb: if not self.options.all: self.log("Doctesting the Sage notebook.") from pkg_resources import Requirement, working_set sagenb_loc = working_set.find(Requirement.parse('sagenb')).location self.files.append(opj(sagenb_loc, 'sagenb'))
def add_files(self): r""" Checks for the flags '--all', '--new' and '--sagenb'. For each one present, this function adds the appropriate directories and files to the todo list. EXAMPLES:: sage: from sage.doctest.control import DocTestDefaults, DocTestController sage: from sage.env import SAGE_SRC sage: import os sage: log_location = os.path.join(SAGE_TMP, 'control_dt_log.log') sage: DD = DocTestDefaults(all=True, logfile=log_location) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting entire Sage library. sage: os.path.join(SAGE_SRC, 'sage') in DC.files True :: sage: DD = DocTestDefaults(new = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting files changed since last HG commit. sage: len(DC.files) == len([L for L in hg_sage('status', interactive=False, debug=False)[0].split('\n') if len(L.split()) ==2 and L.split()[0] in ['M','A']]) True :: sage: DD = DocTestDefaults(sagenb = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting the Sage notebook. sage: DC.files[0][-6:] 'sagenb' """ opj = os.path.join from sage.env import SAGE_SRC as base if self.options.all: self.log("Doctesting entire Sage library.") from glob import glob self.files.append(opj(base, 'sage')) self.files.append(opj(base, 'doc', 'common')) self.files.extend(glob(opj(base, 'doc', '[a-z][a-z]'))) self.options.sagenb = True elif self.options.new: self.log("Doctesting files changed since last HG commit.") import sage.all_cmdline from sage.misc.hg import hg_sage for X in hg_sage('status', interactive=False, debug=False)[0].split('\n'): tup = X.split() if len(tup) != 2: continue c, filename = tup if c in ['M','A']: filename = opj(base, filename) self.files.append(filename) if self.options.sagenb: if not self.options.all: self.log("Doctesting the Sage notebook.") from pkg_resources import Requirement, working_set sagenb_loc = working_set.find(Requirement.parse('sagenb')).location self.files.append(opj(sagenb_loc, 'sagenb'))
def add_files(self): r""" Checks for the flags '--all', '--new' and '--sagenb'. For each one present, this function adds the appropriate directories and files to the todo list. EXAMPLES:: sage: from sage.doctest.control import DocTestDefaults, DocTestController sage: from sage.env import SAGE_SRC sage: import os sage: log_location = os.path.join(SAGE_TMP, 'control_dt_log.log') sage: DD = DocTestDefaults(all=True, logfile=log_location) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting entire Sage library. sage: os.path.join(SAGE_SRC, 'sage') in DC.files True :: sage: DD = DocTestDefaults(new = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting files ... :: sage: DD = DocTestDefaults(sagenb = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() Doctesting the Sage notebook. sage: DC.files[0][-6:] 'sagenb' """ opj = os.path.join from sage.env import SAGE_SRC if self.options.all: self.log("Doctesting entire Sage library.") from glob import glob self.files.append(opj(SAGE_SRC, 'sage')) self.files.append(opj(SAGE_SRC, 'doc', 'common')) self.files.extend(glob(opj(SAGE_SRC, 'doc', '[a-z][a-z]'))) self.options.sagenb = True elif self.options.new: # Get all files changed in the working repo, as well as all # files in the top Mercurial queue patch. from sage.misc.hg import hg_sage out, err = hg_sage('status --rev qtip^', interactive=False, debug=False) if not err: qtop = hg_sage('qtop', interactive=False, debug=False)[0].strip() self.log("Doctesting files in mq patch " + repr(qtop)) else: # Probably mq isn't used out, err = hg_sage('status', interactive=False, debug=False) if not err: self.log("Doctesting files changed since last hg commit") else: raise RuntimeError("failed to run hg status:\n" + err) for X in out.split('\n'): tup = X.split() if len(tup) != 2: continue c, filename = tup if c in ['M', 'A']: filename = opj(SAGE_SRC, filename) if not skipfile(filename): self.files.append(filename) if self.options.sagenb: if not self.options.all: self.log("Doctesting the Sage notebook.") from pkg_resources import Requirement, working_set sagenb_loc = working_set.find(Requirement.parse('sagenb')).location self.files.append(opj(sagenb_loc, 'sagenb'))