def backup(self): if not self.settings.value('journal') or not os.path.exists( self.settings.value('journal')): EJControl() self.rootdir = os.path.normpath( os.path.join(self.settings.value('journal'), 'backup')) bu = Backup() bu.backup() self.fillAvailBackups()
def setUpClass(cls): bu = Backup() bu.backup() if ModelBase.session: ModelBase.session.rollback() ddiirr = os.path.dirname(__file__) os.chdir(os.path.realpath(ddiirr + '/../')) outdir = 'test/out' cls.outdir = os.path.realpath(outdir) cls.db = 'data/testdb.sqlite' cls.db = os.path.realpath(cls.db) if os.path.exists(cls.db): clearTables(cls.db) cls.rtg = RTG(db=cls.db) # cls.dates = ['20200203 09:30', '20200204 07:30', '20200205 09:35', '20200206 11:40', '20200207 10:39'] cls.dates = ['20200207 10:39'] cls.infiles = cls.rtg.saveSomeTestFiles(cls.dates, cls.outdir, strict=True, overwrite=True) settings = QSettings('zero_substance', 'structjour') for i, name in enumerate(cls.infiles): name = os.path.join(cls.outdir, name) x, cls.inputType = getStatementType(name) # print(cls.inputType) if cls.inputType == 'DAS': ds = DasStatement(name, settings, cls.dates[i]) ds.getTrades(testFileLoc=cls.outdir, testdb=cls.db) elif cls.inputType == "IB_CSV": ibs = IbStatement(db=cls.db) ibs.openIBStatement(name) else: continue # self.assertTrue(4 == 5, "Unsupported file type in test_TheTradeObject") statement = StatementDB(db=cls.db) df = statement.getStatement(cls.dates[i]) # self.assertFalse(df.empty, f"Found no trades in db on {daDate}") dtrade = DefineTrades(cls.inputType) dframe, ldf = dtrade.processDBTrades(df) # tto = TheTradeObject(ldf[0], False, SumReqFields()) jf = JournalFiles(indir=cls.outdir, outdir=outdir, theDate=cls.dates[i], infile=name) cls.sc = SumControl() lf = LayoutForms(cls.sc, jf, dframe) lf.runTtoSummaries(ldf) cls.jfs.append(jf) cls.dframes.append(dframe) # cls.ttos.append(tto) cls.ldfs.append(ldf) cls.lfs.append(lf)
def setUpClass(cls): bu = Backup() bu.backup() print( f'Files have been backed up. Most recent back is {bu.mostRecent()}' ) settings = QSettings('zero_substance', 'structjour') tdb = settings.value('tradeDb') # if tdb and os.path.exists(tdb): # os.remove(tdb) # sdb = settings.value('structjourDb') # if sdb and os.path.exists(sdb): # os.remove(sdb) ModelBase.connect(new_session=True) ModelBase.createAll()
def test_updateKey(self): settings = QSettings('zero_substance', 'structjour') bu = Backup() bu.backup() statement = text('delete from api_keys') ModelBase.connect(new_session=True) statement = text('delete from api_keys') ModelBase.engine.execute(statement) mk = util.ManageKeys(create=True) mk.updateKey('bc', 'Its the end of the world') mk.updateKey('av', 'as we know it') bck = mk.getKey('bc') avk = mk.getKey('av') self.assertTrue(bck == 'Its the end of the world') self.assertTrue(avk == 'as we know it') bu.restore()
def setUpClass(cls): bu = Backup() bu.backup() ddiirr = os.path.dirname(__file__) os.chdir(os.path.realpath(ddiirr)) os.chdir(os.path.realpath('../')) cls.outdir = os.path.realpath(cls.outdir) cls.db = os.path.realpath(cls.db) if os.path.exists(cls.db): clearTables(cls.db) cls.rtg = RTG(db=cls.db, overnight=100) cls.theDate = '20200207 10:39' cls.infile = cls.rtg.saveSomeTestFiles([cls.theDate], cls.outdir, strict=True, overwrite=False)[0] settings = QSettings('zero_substance', 'structjour') # for i, name in enumerate(cls.infiles): name = os.path.join(cls.outdir, cls.infile) x, cls.inputType = getStatementType(name) if cls.inputType == 'DAS': ds = DasStatement(name, settings, cls.theDate) ds.getTrades(testFileLoc=cls.outdir, testdb=cls.db) elif cls.inputType == "IB_CSV": ibs = IbStatement(db=cls.db) ibs.openIBStatement(name) else: raise ValueError(f'Unsupported File type: {cls.inputType}') statement = StatementDB(db=cls.db) cls.df = statement.getStatement(cls.theDate) cls.dtrades = DefineTrades(cls.inputType) cls.rc = FinReqCol(cls.inputType) cls.trades = cls.dtrades.addFinReqCol(cls.df) rccolumns = cls.rc.columns.copy() rccolumns = cls.dtrades.appendCols(rccolumns) cls.trades = cls.trades[rccolumns] cls.trades.copy() cls.trades = cls.trades.sort_values( [cls.rc.ticker, cls.rc.acct, cls.rc.date])
def setUpClass(cls): bu = Backup() bu.backup() if ModelBase.session: ModelBase.session.rollback() print( f'Files have been backed up. Most recent back is {bu.mostRecent()}' ) settings = QSettings('zero_substance', 'structjour') # tdb = settings.value('tradeDb') # if tdb and os.path.exists(tdb): # os.remove(tdb) # sdb = settings.value('structjourDb') # if sdb and os.path.exists(sdb): # os.remove(sdb) dcrud = DailyNotesCrud(daDate="20301231") dcrud.createTable() dcrud.setNote('In the year 2030 on new years eve ...')
def setUpClass(cls): bu = Backup() bu.backup() if ModelBase.session: ModelBase.session.rollback() print( f'Files have been backed up. Most recent back is {bu.mostRecent()}' ) settings = QSettings('zero_substance', 'structjour') tdb = settings.value('tradeDb') # if tdb and os.path.exists(tdb): # os.remove(tdb) # sdb = settings.value('structjourDb') # if sdb and os.path.exists(sdb): # os.remove(sdb) # create the schema scrud = StrategyCrud() scrud.createTables() scrud.addStrategy('VWAP Support')
def setUpClass(cls): bu = Backup() bu.backup() ddiirr = os.path.dirname(__file__) os.chdir(os.path.realpath(ddiirr + '/../')) outdir = 'test/out' cls.outdir = os.path.realpath(outdir) cls.db = 'data/testdb.sqlite' cls.db = os.path.realpath(cls.db) if os.path.exists(cls.db): clearTables(cls.db) cls.rtg = RTG(db=cls.db) # cls.dates = ['20200203 09:30', '20200204 07:30', '20200205 09:35', '20200206 11:40', '20200207 10:39'] cls.theDate = '20200207 10:39' cls.infile = cls.rtg.saveSomeTestFiles([cls.theDate], cls.outdir)[0] settings = QSettings('zero_substance', 'structjour') # for i, name in enumerate(cls.infiles): name = os.path.join(cls.outdir, cls.infile) x, inputType = getStatementType(name) if inputType == 'DAS': ds = DasStatement(name, settings, cls.theDate) ds.getTrades(testFileLoc=cls.outdir, testdb=cls.db) elif inputType == "IB_CSV": ibs = IbStatement(db=cls.db) ibs.openIBStatement(name) else: raise ValueError(f'Unsupported File type: {inputType}') statement = StatementDB(db=cls.db) df = statement.getStatement(cls.theDate) dtrade = DefineTrades(inputType) dframe, cls.ldf = dtrade.processDBTrades(df) cls.jf = JournalFiles(indir=cls.outdir, outdir=outdir, theDate=cls.theDate, infile=name) cls.sc = SumControl() lf = LayoutForms(cls.sc, cls.jf, dframe) lf.runTtoSummaries(cls.ldf) # Setup mistake note fields to test cls.note = 'Ground control to Major Tom' for i, key in enumerate(lf.ts): tto = lf.ts[key] notex = cls.note + str(i + 1) tto['MstkNote'] = notex # Setup a couple images to add imdir = 'images/' img1 = os.path.join(imdir, 'fractal-art-fractals.jpg') img2 = os.path.join(imdir, 'psych.jpg') assert os.path.exists(img1) assert os.path.exists(img2) for key in lf.ts: tto = lf.ts[key]['chart1'] = img1 tto = lf.ts[key]['chart2'] = img2 t = ExportToExcel(lf.ts, cls.jf, df) imageNames = t.getImageNamesFromTS() cls.imageLocation, dframe = t.layoutExcelData(t.df, cls.ldf, imageNames) assert len(cls.ldf) == len(cls.imageLocation) # Create an openpyxl wb from the dataframe ls = LayoutSheet(t.topMargin, len(t.df)) cls.wb, ws, nt = ls.createWorkbook(dframe) # Place both forms 2 cells to the right of the main table mstkAnchor = (len(dframe.columns) + 2, 1) cls.mistake = MistakeSummary(numTrades=len(cls.ldf), anchor=mstkAnchor) cls.t = t cls.a = mstkAnchor
def setUpClass(cls): bu = Backup() bu.backup()