def test_load_files(self): ks_fh = filehandler(self.db) ks_fh.reset() company_id = 1 register_raw_files("./tests/data2/Sales.csv", company_id, self.db) register_raw_files("./tests/data2/Currencyv2.csv", company_id, self.db) register_raw_files("./tests/data2/CountryRegion.csv", company_id, self.db) register_raw_files("./tests/data2/ComissionTax.csv",company_id, self.db) ks_precompute = precompute(self.db) ks_precompute.reset() precompute ks_merge = merge(self.db) load_precompute_normalize(company_id, self.db) ks_fh.registerFormula("", "Plus", "Plus", "Units+RoyaltyPrice", "sum") ks_fh.registerFormula("", "Mult", "Mult", "Units*RoyaltyPrice", "sum") plus_id = ks_fh.getMeasureID("Plus") mult_id = ks_fh.getMeasureID("Mult") units_id = ks_fh.getMeasureID("Units") royality_id = ks_fh.getMeasureID("RoyaltyPrice") # MEASURE DATA DEMO raw_facts + measures with formulas print(measure_data(self.db, company_id, [plus_id,mult_id,units_id,royality_id],"day","2014-06-01","2014-06-01")) # MEASURE DATA DEMO raw_facts group by print(measure_data(self.db, company_id, [units_id, royality_id],"day","2014-06-01","2014-06-01","Region")) self.db.commit()
def setUpClass(cls): #---------------------- # set up db #---------------------- cls.db = MySQLdb.connect( ks_db_settings.setting('host'), ks_db_settings.setting('user'), ks_db_settings.setting('password'), ks_db_settings.setting('database')) cls.ks_fh = filehandler(cls.db) cls.ks_fh.reset() cls.company_id = 1 register_raw_files("./tests/data2/Sales.csv", cls.company_id, cls.db) register_raw_files("./tests/data2/Currencyv2.csv", cls.company_id, cls.db) register_raw_files("./tests/data2/CountryRegion.csv", cls.company_id, cls.db) register_raw_files("./tests/data2/ComissionTax.csv",cls.company_id, cls.db) ks_precompute = precompute(cls.db) ks_precompute.reset() precompute ks_merge = merge(cls.db) load_precompute_normalize_URL(cls.company_id, cls.db) id = ks_precompute.getMaxBigTableIdForCompany(cls.company_id) ks_merge = merge(cls.db) mergeBigTable = ks_merge.getTables() metaData = ks_merge.getMetaDataFromTable(mergeBigTable[0]) cls.ks_analytics = analytics(cls.db) newBigTable = "BigTable"+ str(ks_precompute.getMaxBigTableIdForCompany(cls.company_id)) cls.ks_analytics.reset() cls.ks_analytics.addBigTable(mergeBigTable[0], newBigTable, metaData) #clean up sql ="update %s set TaxRate = TaxRate/100;"%("analytics."+newBigTable) cls.db.cursor().execute(sql) # ProductType changed from D to M see documentation of test case sql ="update %s set ProductType = 'M' where VendorId='0268_20140114_SOFA_ENGLIS' and DownloadDate='6/1/14';"%("analytics."+newBigTable) cls.db.cursor().execute(sql) cls.ks_analytics.addFactUsingBinaryOpAPI("NET_REVENUE", "Units", "RoyaltyPrice", "*", newBigTable) cls.ks_analytics.addFactUsingBinaryOpAPI("TAXES", "NET_REVENUE","TaxRate","*", newBigTable) cls.ks_analytics.addFactUsingBinaryOpAPI("REVENUE_AFTER_TAX", "NET_REVENUE","TAXES","-", newBigTable) cls.ks_fh.registerFormula("", "Plus", "Plus", "Units+RoyaltyPrice", "sum") cls.ks_fh.registerFormula("", "Mult", "Mult", "Units*RoyaltyPrice", "sum") cls.ks_fh.registerFormula("", "Individual_Tax", "Individual_Tax", "RoyaltyPrice*TaxRate", "sum") cls.ks_fh.registerFormula("", "NET_REVENUE", "NET_REVENUE", "Units*RoyaltyPrice", "sum") cls.ks_fh.registerFormula("", "SumPlus", "SumPlus", "Sum(Units)+Sum(RoyaltyPrice)", "sum") cls.ks_fh.registerFormula("", "SumMult", "SumMult", "Sum(Units)*Sum(RoyaltyPrice)", "sum") cls.ks_fh.registerFormula("", "Individual_TaxSum", "Individual_TaxSum", "Sum(RoyaltyPrice)*Sum(TaxRate)", "sum") cls.ks_fh.registerFormula("", "NonsenseSum", "Individual_Tax", "Sum(RoyaltyPrice)+Sum(TaxRate)", "sum") cls.ks_fh.registerFormula("", "Nonsense", "Individual_Tax", "RoyaltyPrice+TaxRate", "sum") cls.ks_fh.registerFormula("", "REVENUE_AFTER_TAX", "REVENUE_AFTER_TAX", "", "sum")