def test_sigint(self, mock_quick_input): """Check that processed transactions are not lost on interruption. """ qifqif.main() with io.open(OUT_FILE.name, 'r', encoding='utf-8') as fin: res = qifile.parse_lines(fin.readlines()) self.assertEqual(res[0]['category'], 'Drink')
def test_sigint(self, mock_quick_input): """Check that processed transactions are not lost on interruption.""" qifqif.main() OUT_FILE.close() with io.open(OUT_FILE.name, "r", encoding="utf-8") as fin: res = qifile.parse_lines(fin.readlines()) os.unlink(OUT_FILE.name) self.assertEqual(res[0]["category"], "Drink")
def main(argv=None): """Main function: Parse, process, print""" if argv is None: argv = sys.argv args = parse_args(argv) if not args: exit(1) original_tags = copy.deepcopy(tags.load(args['config'])) with io.open(args['src'], 'r', encoding='utf-8', errors='ignore') as fin: lines = fin.readlines() transacs_orig = qifile.parse_lines(lines, options=args) try: transacs = process_transactions(transacs_orig, options=args) except EOFError: # exit on Ctrl + D: restore original tags tags.save(args['config'], original_tags) return 1 res = qifile.dump_to_buffer(transacs + transacs_orig[len(transacs):]) if not args.get('dry-run'): with io.open(args['dest'], 'w', encoding='utf-8') as dest: dest.write(res) if args['batch'] or args['dry-run']: print('\n' + res) return 0 if len(transacs) == len(transacs_orig) else 1
def main(argv=None): """Main function: Parse, process, print""" if argv is None: argv = sys.argv args = parse_args(argv) if not args: exit(1) original_tags = copy.deepcopy(tags.load(args["config"])) with io.open(args["src"], "r", encoding="utf-8", errors="ignore") as fin: lines = fin.readlines() transacs_orig = qifile.parse_lines(lines, options=args) try: transacs = process_transactions(transacs_orig, options=args) except EOFError: # exit on Ctrl + D: restore original tags tags.save(args["config"], original_tags) return 1 res = qifile.dump_to_buffer(transacs + transacs_orig[len(transacs) :]) if not args.get("dry-run"): with io.open(args["dest"], "w", encoding="utf-8") as dest: dest.write(res) if args["batch"] or args["dry-run"]: print("\n" + res) return 0 if len(transacs) == len(transacs_orig) else 1
def test_parse_empty_transaction(self): res = qifile.parse_lines(testdata.generate_lines("PDM^^")) self.assertEqual(len(res), 1)
def test_parse_delimiter_optional(self): res_no_delim = qifile.parse_lines(testdata.generate_lines("PDM^P")) res_delim_end = qifile.parse_lines(testdata.generate_lines("PDM^P^")) res_delim_ends = qifile.parse_lines(testdata.generate_lines("^PDM^P^")) self.assertEqual(res_no_delim, res_delim_end) self.assertEqual(res_delim_end, res_delim_ends)
def transactions(): with io.open(QIF_FILE, 'r', encoding='utf-8') as fin: lines = fin.readlines() return qifile.parse_lines(lines), lines
def test_parse_default_transaction(self): res = qifile.parse_lines(testdata.generate_lines('PDM')) self.assertEqual(len(res), 1)