From 377b51700fa8eaa9ec6f1cd98f810bf12aa79b27 Mon Sep 17 00:00:00 2001 From: denarced Date: Sun, 31 Aug 2014 21:40:53 +0300 Subject: [PATCH 1/2] Simplify code_prep.split_line, fix it's unit test. I presumed that the failing unit test was wrong and the previous implementation was working as it should. --- gooey/code_prep.py | 7 ++----- gooey/code_prep_unittest.py | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/gooey/code_prep.py b/gooey/code_prep.py index d8b4bff..a9fc220 100644 --- a/gooey/code_prep.py +++ b/gooey/code_prep.py @@ -38,11 +38,8 @@ def split_line(line): # splits an assignment statement into varname and command strings # in: "parser = ArgumentParser(description='Example Argparse Program')" # out: "parser", "ArgumentParser(description='Example Argparse Program" - # take/dropwhile used to avoid splitting on multiple '=' signs - not_equal_sign = lambda x: x != '=' - varname = ''.join(takewhile(not_equal_sign, line)).strip() - command = ''.join(dropwhile(not_equal_sign, line))[2:] - return varname, command + pieces = line.split('=', 1) + return pieces[0].strip(), ''.join(pieces[1:]).lstrip() def update_parser_varname(new_varname, code): # lines = source.split('\n')[1:] diff --git a/gooey/code_prep_unittest.py b/gooey/code_prep_unittest.py index ce7ce4b..c66805e 100644 --- a/gooey/code_prep_unittest.py +++ b/gooey/code_prep_unittest.py @@ -8,7 +8,7 @@ class TestCodePrep(unittest.TestCase): def test_split_line(self): line = "parser = ArgumentParser(description='Example Argparse Program')" self.assertEqual("parser", code_prep.split_line(line)[0]) - self.assertEqual("= ArgumentParser(description='Example Argparse Program')", code_prep.split_line(line)[1]) + self.assertEqual("ArgumentParser(description='Example Argparse Program')", code_prep.split_line(line)[1]) def test_update_parser_varname_assigns_new_name_to_parser_var(self): line = ["parser = ArgumentParser(description='Example Argparse Program')"] @@ -54,4 +54,4 @@ parser.parse_args() if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] - unittest.main() \ No newline at end of file + unittest.main() From 9f36c7c517409f98d6beeecb37adbfdce98615ab Mon Sep 17 00:00:00 2001 From: denarced Date: Sun, 31 Aug 2014 22:19:29 +0300 Subject: [PATCH 2/2] Code review fix: convert list into variables. --- gooey/code_prep.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gooey/code_prep.py b/gooey/code_prep.py index a9fc220..34b13ef 100644 --- a/gooey/code_prep.py +++ b/gooey/code_prep.py @@ -38,8 +38,8 @@ def split_line(line): # splits an assignment statement into varname and command strings # in: "parser = ArgumentParser(description='Example Argparse Program')" # out: "parser", "ArgumentParser(description='Example Argparse Program" - pieces = line.split('=', 1) - return pieces[0].strip(), ''.join(pieces[1:]).lstrip() + variable, instruction = line.split('=', 1) + return variable.strip(), instruction.strip() def update_parser_varname(new_varname, code): # lines = source.split('\n')[1:]