X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTSN%2FXML%2FOdds.hs;h=5bdf2ba702a5d04f65248cef505cb5d5680f7631;hb=073bbfba4165d4c01d29daaa7523c35c6cc7d114;hp=6e47380c62802e856b59a9c438cf53f831da298d;hpb=251287a26728178919ca1ce0f7b308df8bd00760;p=dead%2Fhtsn-import.git diff --git a/src/TSN/XML/Odds.hs b/src/TSN/XML/Odds.hs index 6e47380..5bdf2ba 100644 --- a/src/TSN/XML/Odds.hs +++ b/src/TSN/XML/Odds.hs @@ -37,11 +37,9 @@ import Database.Groundhog ( deleteAll, insert_, migrate, - runMigration, - silentMigrationLogger, update ) import Database.Groundhog.Core ( DefaultKey ) -import Database.Groundhog.Generic ( runDbConn ) +import Database.Groundhog.Generic ( runDbConn, runMigrationSilent ) import Database.Groundhog.Sqlite ( withSqliteConn ) import Database.Groundhog.TH ( groundhog, @@ -68,7 +66,11 @@ import Text.XML.HXT.Core ( import TSN.Codegen ( tsn_codegen_config ) import TSN.Database ( insert_or_select ) import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate ) -import TSN.Picklers ( xp_date_padded, xp_tba_time, xp_time_stamp ) +import TSN.Picklers ( + xp_attr_option, + xp_date_padded, + xp_tba_time, + xp_time_stamp ) import TSN.Team ( FromXmlFkTeams(..), Team(..) ) import TSN.XmlImport ( XmlImport(..), XmlImportFkTeams(..) ) import Xml ( @@ -650,7 +652,7 @@ pickle_casino = xpElem "Casino" $ xpWrap (from_tuple, H.convert) $ xpTriple - (xpAttr "ClientID" $ xpOption xpInt) + (xpAttr "ClientID" xp_attr_option) (xpAttr "Name" $ xpOption xpText) (xpOption xpText) where @@ -807,7 +809,10 @@ test_pickle_of_unpickle_is_identity = testGroup "pickle-unpickle tests" "test/xml/Odds_XML-tba-game-time.xml", check "pickle composed with unpickle is the identity (empty casino)" - "test/xml/Odds_XML-empty-casino.xml" ] + "test/xml/Odds_XML-empty-casino.xml", + + check "pickle composed with unpickle is the identity (long import)" + "test/xml/Odds_XML-long-import.xml" ] where check desc path = testCase desc $ do (expected, actual) <- pickle_unpickle pickle_message path @@ -840,7 +845,10 @@ test_unpickle_succeeds = testGroup "unpickle tests" "test/xml/Odds_XML-tba-game-time.xml", check "unpickling succeeds (empty casino)" - "test/xml/Odds_XML-empty-casino.xml" ] + "test/xml/Odds_XML-empty-casino.xml", + + check "unpickling succeeds (long-import)" + "test/xml/Odds_XML-long-import.xml" ] where check desc path = testCase desc $ do actual <- unpickleable path pickle_message @@ -887,6 +895,10 @@ test_on_delete_cascade = testGroup "cascading delete tests" check "deleting odds deleted its children (empty casino)" "test/xml/Odds_XML-empty-casino.xml" 11 -- 5 casinos, 6 teams + , + check "deleting odds deleted its children (long import)" + "test/xml/Odds_XML-long-import.xml" + 219 -- 5 casinos, 214 teams ] where check desc path expected = testCase desc $ do @@ -897,7 +909,7 @@ test_on_delete_cascade = testGroup "cascading delete tests" let d = undefined :: OddsGame let e = undefined :: OddsGameLine actual <- withSqliteConn ":memory:" $ runDbConn $ do - runMigration silentMigrationLogger $ do + runMigrationSilent $ do migrate a migrate b migrate c