diff --git a/pyfpdb/RegressionTest.py b/pyfpdb/RegressionTest.py deleted file mode 100755 index 23e60b0b..00000000 --- a/pyfpdb/RegressionTest.py +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/python - -#Copyright 2008 Steffen Jobbagy-Felso -#This program is free software: you can redistribute it and/or modify -#it under the terms of the GNU Affero General Public License as published by -#the Free Software Foundation, version 3 of the License. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU Affero General Public License -#along with this program. If not, see . -#In the "official" distribution you can find the license in -#agpl-3.0.txt in the docs folder of the package. - - -############################################################################ -# -# File for Regression Testing fpdb -# - -import os -import sys - -import datetime -import Configuration -import fpdb_db -import fpdb_import -import fpdb_simple -import FpdbSQLQueries -import EverleafToFpdb -import Tables - -import unittest - -class TestSequenceFunctions(unittest.TestCase): - - def setUp(self): - """Configure MySQL settings/database and establish connection""" - self.c = Configuration.Config() - self.mysql_settings={ 'db-host':"localhost", - 'db-backend':2, - 'db-databaseName':"fpdbtest", - 'db-user':"fpdb", - 'db-password':"fpdb"} - self.mysql_db = fpdb_db.fpdb_db() - self.mysql_db.connect(self.mysql_settings['db-backend'], self.mysql_settings['db-host'], - self.mysql_settings['db-databaseName'], self.mysql_settings['db-user'], - self.mysql_settings['db-password']) - self.mysqldict = FpdbSQLQueries.FpdbSQLQueries('MySQL InnoDB') - self.mysqlimporter = fpdb_import.Importer(self, self.mysql_settings, self.c) - self.mysqlimporter.setCallHud(False) - - self.everleaf = EverleafToFpdb.Everleaf(self.c, "Nofile") - -# """Configure Postgres settings/database and establish connection""" -# self.pg_settings={ 'db-host':"localhost", 'db-backend':3, 'db-databaseName':"fpdbtest", 'db-user':"fpdb", 'db-password':"fpdb"} -# self.pg_db = fpdb_db.fpdb_db() -# self.pg_db.connect(self.pg_settings['db-backend'], self.pg_settings['db-host'], -# self.pg_settings['db-databaseName'], self.pg_settings['db-user'], -# self.pg_settings['db-password']) -# self.pgdict = FpdbSQLQueries.FpdbSQLQueries('PostgreSQL') - - - def testDatabaseConnection(self): - """Test all supported DBs""" - self.result = self.mysql_db.cursor.execute(self.mysqldict.query['list_tables']) - self.failUnless(self.result==13, "Number of tables in database incorrect. Expected 13 got " + str(self.result)) - -# self.result = self.pg_db.cursor.execute(self.pgdict.query['list_tables']) -# self.failUnless(self.result==13, "Number of tables in database incorrect. Expected 13 got " + str(self.result)) - - def testMySQLRecreateTables(self): - """Test droping then recreating fpdb table schema""" - self.mysql_db.recreate_tables() - self.result = self.mysql_db.cursor.execute("SHOW TABLES") - self.failUnless(self.result==13, "Number of tables in database incorrect. Expected 13 got " + str(self.result)) - - def testPokerStarsHHDate(self): - latest = "PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/11/12 10:00:48 CET [2008/11/12 4:00:48 ET]" - previous = "PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/08/17 - 01:14:43 (ET)" - older1 = "PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/09/07 06:23:14 ET" - - result = fpdb_simple.parseHandStartTime(older1, "ps") - self.failUnless(result==datetime.datetime(2008,9,7,11,23,14), - "Date incorrect, expected: 2008-09-07 11:23:14 got: " + str(result)) - result = fpdb_simple.parseHandStartTime(latest, "ps") - self.failUnless(result==datetime.datetime(2008,11,12,15,00,48), - "Date incorrect, expected: 2008-11-12 15:00:48 got: " + str(result)) - result = fpdb_simple.parseHandStartTime(previous, "ps") - self.failUnless(result==datetime.datetime(2008,8,17,6,14,43), - "Date incorrect, expected: 2008-08-17 01:14:43 got: " + str(result)) - - def testFullTiltHHDate(self): - sitngo1 = "Full Tilt Poker Game #10311865543: $1 + $0.25 Sit & Go (78057629), Table 1 - 25/50 - No Limit Hold'em - 0:07:45 ET - 2009/01/29" - cash1 = "Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09" - cash2 = "Full Tilt Poker Game #9468383505: Table Bike (deep 6) - $0.05/$0.10 - No Limit Hold'em - 5:09:36 ET - 2008/12/13" - - result = fpdb_simple.parseHandStartTime(sitngo1,"ftp") - self.failUnless(result==datetime.datetime(2009,1,29,05,07,45), - "Date incorrect, expected: 2009-01-29 05:07:45 got: " + str(result)) - result = fpdb_simple.parseHandStartTime(cash1,"ftp") - self.failUnless(result==datetime.datetime(2008,12,9,14,40,20), - "Date incorrect, expected: 2008-12-09 14:40:20 got: " + str(result)) - result = fpdb_simple.parseHandStartTime(cash2,"ftp") - self.failUnless(result==datetime.datetime(2008,12,13,10,9,36), - "Date incorrect, expected: 2008-12-13 10:09:36 got: " + str(result)) - - def testTableDetection(self): - result = Tables.clean_title("French (deep)") - self.failUnless(result == "French", "French (deep) parsed incorrectly. Expected 'French' got: " + str(result)) -# result = ("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx") - - def testEverleafGameInfoRegex(self): - cash_nlhe = """Everleaf Gaming Game #55198191 -***** Hand history for game #55198191 ***** -Blinds $0.50/$1 NL Hold'em - 2008/09/01 - 10:02:11 -Table Speed Kuala -Seat 8 is the button -Total number of players: 10""" - cash_plo = """Everleaf Gaming Game #65295370 -***** Hand history for game #65295370 ***** -Blinds $0.50/$1 PL Omaha - 2008/12/07 - 21:59:48 -Table Guanajuato -Seat 5 is the button -Total number of players: 6""" - cash_flhe = """Everleaf Gaming Game #55809022 -***** Hand history for game #55809022 ***** -$1/$2 Hold'em - 2008/09/07 - 08:04:36 -Table Jeonju -Seat 4 is the button -Total number of players: 5 -""" - #NLHE - m = self.everleaf.re_GameInfo.search(cash_nlhe) - sb = m.group('SB') - bb = m.group('BB') - ltype = m.group('LTYPE') - game = m.group('GAME') - - self.failUnless(sb == "0.50", "SB incorrect, expected: 0.50 got: '" + sb + "'") - self.failUnless(bb == "1", "BB incorrect, expected: 1 got: '" + bb + "'") - self.failUnless(ltype == "NL", "LTYPE incorrect, expected: NL got: '" + ltype + "'") - self.failUnless(game == "Hold\'em", "GAME incorrect, expected: Hold\'em got: '" + game + "'") - - #FLHE - m = self.everleaf.re_GameInfo.search(cash_flhe) - sb = m.group('SB') - bb = m.group('BB') - ltype = m.group('LTYPE') - game = m.group('GAME') - print m.groups() - - self.failUnless(sb == "1", "SB incorrect, expected: 1 got: '" + sb + "'") - self.failUnless(bb == "2", "BB incorrect, expected: 2 got: '" + bb + "'") - self.failUnless(ltype == None, "LTYPE incorrect, expected: NL got: '%s'" %(ltype)) - self.failUnless(game == "Hold\'em", "GAME incorrect, expected: Hold\'em got: '" + game + "'") - -# def testImportHandHistoryFiles(self): -# """Test import of single HH file""" -# self.mysqlimporter.addImportFile("regression-test-files/hand-histories/ps-lhe-ring-3hands.txt") -# self.mysqlimporter.runImport() -# self.mysqlimporter.addImportDirectory("regression-test-files/hand-histories") -# self.mysqlimporter.runImport() - -# def testPostgresSQLRecreateTables(self): -# """Test droping then recreating fpdb table schema""" -# self.pg_db.recreate_tables() -# self.result = self.pg_db.cursor.execute(self.pgdict.query['list_tables']) -# self.failUnless(self.result==13, "Number of tables in database incorrect. Expected 13 got " + str(self.result)) - -if __name__ == '__main__': - unittest.main() - diff --git a/pyfpdb/test_fpdb_simple.py b/pyfpdb/test_fpdb_simple.py new file mode 100755 index 00000000..bde20b45 --- /dev/null +++ b/pyfpdb/test_fpdb_simple.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +import fpdb_simple +import datetime +import py + +def checkDateParse(header, result): + assert fpdb_simple.parseHandStartTime(header) == result + +def testPokerStarsHHDate(): + tuples = ( + ("PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/11/12 10:00:48 CET [2008/11/12 4:00:48 ET]", + datetime.datetime(2008,9,7,11,23,14)), + ("PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/08/17 - 01:14:43 (ET)", + datetime.datetime(2008,11,12,15,00,48)), + ("PokerStars Game #21969660557: Hold'em No Limit ($0.50/$1.00) - 2008/09/07 06:23:14 ET", + datetime.datetime(2008,8,17,6,14,43)) + ) + +#def testFullTiltHHDate(self): +# sitngo1 = "Full Tilt Poker Game #10311865543: $1 + $0.25 Sit & Go (78057629), Table 1 - 25/50 - No Limit Hold'em - 0:07:45 ET - 2009/01/29" +# cash1 = "Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09" +# cash2 = "Full Tilt Poker Game #9468383505: Table Bike (deep 6) - $0.05/$0.10 - No Limit Hold'em - 5:09:36 ET - 2008/12/13" + +# result = fpdb_simple.parseHandStartTime(sitngo1,"ftp") +# self.failUnless(result==datetime.datetime(2009,1,29,05,07,45), +# "Date incorrect, expected: 2009-01-29 05:07:45 got: " + str(result)) +# result = fpdb_simple.parseHandStartTime(cash1,"ftp") +# self.failUnless(result==datetime.datetime(2008,12,9,14,40,20), +# "Date incorrect, expected: 2008-12-09 14:40:20 got: " + str(result)) +# result = fpdb_simple.parseHandStartTime(cash2,"ftp") +# self.failUnless(result==datetime.datetime(2008,12,13,10,9,36), +# "Date incorrect, expected: 2008-12-13 10:09:36 got: " + str(result)) + +# def testTableDetection(self): +# result = Tables.clean_title("French (deep)") +# self.failUnless(result == "French", "French (deep) parsed incorrectly. Expected 'French' got: " + str(result)) +# result = ("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx") + + for (header, result) in tuples: + yield checkDateParse header, result