Hello community, here is the log from the commit of package ghc-soap for openSUSE:Factory checked in at 2017-06-22 10:39:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-soap (Old) and /work/SRC/openSUSE:Factory/.ghc-soap.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-soap" Thu Jun 22 10:39:04 2017 rev:2 rq:504104 version:0.2.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-soap/ghc-soap.changes 2017-05-09 18:08:21.612716456 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-soap.new/ghc-soap.changes 2017-06-22 10:39:04.796730106 +0200 @@ -1,0 +2,5 @@ +Wed May 31 14:05:43 UTC 2017 - [email protected] + +- Update to version 0.2.3.5. + +------------------------------------------------------------------- Old: ---- soap-0.2.3.3.tar.gz New: ---- soap-0.2.3.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-soap.spec ++++++ --- /var/tmp/diff_new_pack.NIl481/_old 2017-06-22 10:39:05.312657368 +0200 +++ /var/tmp/diff_new_pack.NIl481/_new 2017-06-22 10:39:05.316656804 +0200 @@ -19,7 +19,7 @@ %global pkg_name soap %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.2.3.3 +Version: 0.2.3.5 Release: 0 Summary: SOAP client tools License: MIT ++++++ soap-0.2.3.3.tar.gz -> soap-0.2.3.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/LICENSE new/soap-0.2.3.5/LICENSE --- old/soap-0.2.3.3/LICENSE 2015-01-25 19:27:45.000000000 +0100 +++ new/soap-0.2.3.5/LICENSE 2017-05-29 22:25:52.000000000 +0200 @@ -1,20 +1,20 @@ -Copyright (c) 2013 Alexander Bondarenko +Copyright (c) 2013-2017 Alexander Bondarenko -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/changelog new/soap-0.2.3.5/changelog --- old/soap-0.2.3.3/changelog 2016-11-23 18:40:45.000000000 +0100 +++ new/soap-0.2.3.5/changelog 2017-05-29 23:11:47.000000000 +0200 @@ -1,3 +1,15 @@ +0.2.3.5: + + * Fix tests + +0.2.3.4: + + * Prepare for xml-conduit-1.5 series. + +0.2.3.3: + + * Relax envelope parser. + 0.2.3.2: * Unbreak the build with GHC 7.8. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/soap.cabal new/soap-0.2.3.5/soap.cabal --- old/soap-0.2.3.3/soap.cabal 2016-12-18 08:58:36.000000000 +0100 +++ new/soap-0.2.3.5/soap.cabal 2017-05-29 23:11:32.000000000 +0200 @@ -1,5 +1,5 @@ name: soap -version: 0.2.3.3 +version: 0.2.3.5 synopsis: SOAP client tools description: Tools to build SOAP clients using xml-conduit. @@ -48,7 +48,7 @@ license-file: LICENSE author: Alexander Bondarenko maintainer: [email protected] --- copyright: +copyright: (c) 2013-2017 Alexander Bondarenko category: Web build-type: Simple cabal-version: >=1.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/src/Network/SOAP/Parsing/Stream.hs new/soap-0.2.3.5/src/Network/SOAP/Parsing/Stream.hs --- old/soap-0.2.3.3/src/Network/SOAP/Parsing/Stream.hs 2015-01-25 19:27:45.000000000 +0100 +++ new/soap-0.2.3.5/src/Network/SOAP/Parsing/Stream.hs 2017-05-29 22:25:52.000000000 +0200 @@ -33,7 +33,11 @@ -- | Namespace- and attribute- ignorant tagNoAttr. laxTag :: (MonadThrow m) => Text -> Sink Event m a -> Sink Event m (Maybe a) +#if MIN_VERSION_xml_conduit(1,5,0) +laxTag ln = XSP.tag' (XSP.matching $ (== ln) . nameLocalName) XSP.ignoreAttrs . const +#else laxTag ln = XSP.tagPredicate ((== ln) . nameLocalName) XSP.ignoreAttrs . const +#endif -- | Non-maybe version of laxTag/tagNoAttr. flaxTag :: (MonadThrow m) => Text -> Sink Event m a -> Sink Event m a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/src/Network/SOAP/Transport/HTTP.hs new/soap-0.2.3.5/src/Network/SOAP/Transport/HTTP.hs --- old/soap-0.2.3.3/src/Network/SOAP/Transport/HTTP.hs 2016-11-23 18:40:45.000000000 +0100 +++ new/soap-0.2.3.5/src/Network/SOAP/Transport/HTTP.hs 2017-05-29 22:25:52.000000000 +0200 @@ -144,7 +144,7 @@ -> Transport runQueryM manager url requestProc bodyProc soapAction doc = do let body = renderLBS def $! doc -#if MIN_VERSION_http_client(0,4,3) +#if MIN_VERSION_http_client(0,4,30) request <- parseRequest url #else request <- parseUrl url diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/soap-0.2.3.3/test/Main.hs new/soap-0.2.3.5/test/Main.hs --- old/soap-0.2.3.3/test/Main.hs 2015-01-25 19:27:45.000000000 +0100 +++ new/soap-0.2.3.5/test/Main.hs 2017-05-29 23:08:07.000000000 +0200 @@ -1,10 +1,10 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} import Network.SOAP import Network.SOAP.Exception import Network.SOAP.Parsing.Cursor import Network.SOAP.Parsing.Stream import qualified Network.SOAP.Transport.Mock as Mock -import qualified Network.SOAP.Transport.HTTP as HTTP import Text.XML import Text.XML.Writer import Text.XML.Cursor as Cur hiding (element) @@ -13,10 +13,10 @@ import Data.Text (Text) import qualified Data.Text as T import qualified Data.HashMap.Strict as HM -import qualified Data.ByteString.Lazy.Char8 as LBS import Test.Hspec +main :: IO () main = hspec $ do describe "Transport.Mock" $ do it "dispatches requests" $ do @@ -38,31 +38,37 @@ describe "CursorParser" $ do let salad cur = head $ cur $/ laxElement "salad" - let check parser = do + let checkCP parser = do t <- Mock.initTransport [ ("spam", saladHandler )] - invokeWS t "spam" () () parser + invokeWS t "spam" () () (CursorParser parser) it "reads content" $ do - result <- check $ CursorParser (readT "bacon" . salad) + result <- checkCP $ readT "bacon" . salad result `shouldBe` "many" it "reads and converts" $ do - result <- check $ CursorParser (readC "eggs" . salad) + result <- checkCP $ readC "eggs" . salad result `shouldBe` (2 :: Integer) it "reads dict" $ do - result <- check $ CursorParser (readDict $ laxElement "salad" ) + result <- checkCP $ readDict $ laxElement "salad" result `shouldBe` HM.fromList [ ("bacon","many") , ("sausage","some") , ("eggs","2") ] describe "StreamParser" $ do +#if MIN_VERSION_xml_conduit(1,5,0) + let parseAnyName = Parse.anyName +#else + let parseAnyName = Just +#endif it "extracts stuff" $ do let recipeParser = do - ings <- Parse.force "no salad" $ Parse.tagNoAttr "salad" $ Parse.many $ Parse.tag Just return $ \name -> do - quantity <- Parse.content - return $ RecipeEntry (nameLocalName name) quantity - return $ Recipe ings + Parse.force "no salad" . Parse.tagNoAttr "salad" $ do + ings <- Parse.many $ Parse.tag parseAnyName pure $ \name -> do + quantity <- Parse.content + pure $ RecipeEntry (nameLocalName name) quantity + pure $ Recipe ings t <- spamTransport result <- invokeWS t "spam" () () $ StreamParser recipeParser @@ -70,13 +76,14 @@ it "extracts using lax helpers" $ do let recipeParser = flaxTag "salad" $ do - s <- flaxContent "sausage" - b <- laxContent "bacon" - e <- readTag "eggs" - return $ Recipe [ RecipeEntry "sausage" s - , RecipeEntry "bacon" $ maybe "" id b - , RecipeEntry "eggs" . T.pack $ show (e :: Int) - ] + s <- flaxContent "sausage" + b <- laxContent "bacon" + e <- readTag "eggs" + return $ Recipe + [ RecipeEntry "sausage" s + , RecipeEntry "bacon" $ maybe "" id b + , RecipeEntry "eggs" . T.pack $ show (e :: Int) + ] result <- invokeSpam $ StreamParser recipeParser result `shouldBe` saladRecipe @@ -100,12 +107,15 @@ , faultDetail = "" } +invokeSpam :: ResponseParser b -> IO b invokeSpam parser = do t <- spamTransport invokeWS t "spam" () () parser +spamTransport :: IO Transport spamTransport = Mock.initTransport [ ("spam", saladHandler) ] +saladHandler :: Mock.Handler saladHandler = Mock.handler $ \_ -> do return . element "salad" $ do element "sausage" ("some" :: Text) @@ -115,6 +125,7 @@ data RecipeEntry = RecipeEntry Text Text deriving (Eq, Show) data Recipe = Recipe [RecipeEntry] deriving (Eq, Show) +saladRecipe :: Recipe saladRecipe = Recipe [ RecipeEntry "sausage" "some" , RecipeEntry "bacon" "many" , RecipeEntry "eggs" "2"
