fakedata 0.2.0 → 0.2.1
raw patch · 9 files changed
+102/−13 lines, 9 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Faker.Internal: randomUnresolvedVecWithoutVector :: (MonadThrow m, MonadIO m) => FakerSettings -> (FakerSettings -> m (Unresolved Text)) -> (FakerSettings -> Text -> m Text) -> m Text
+ Faker.Internal: unresolvedResolverWithoutVector :: (MonadThrow m, MonadIO m) => (FakerSettings -> m (Unresolved Text)) -> (FakerSettings -> Text -> m Text) -> FakerSettings -> m Text
- Faker.Provider.Book: bookAuthorProvider :: (MonadThrow m, MonadIO m) => FakerSettings -> m (Unresolved (Vector Text))
+ Faker.Provider.Book: bookAuthorProvider :: (MonadThrow m, MonadIO m) => FakerSettings -> m (Unresolved Text)
Files
- ChangeLog.md +4/−0
- fakedata.cabal +4/−2
- src/Faker/Book.hs +3/−1
- src/Faker/Internal.hs +18/−0
- src/Faker/Provider/Book.hs +4/−2
- test/BookSpec.hs +36/−0
- test/FakerSpec.hs +0/−2
- test/NameSpec.hs +27/−0
- test/OtherSpec.hs +6/−6
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for fakedata +## 0.2.1++* Fix bug in Book module+ ## 0.2.0 * Add sicCode function in Company module
fakedata.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 4cc038591118fb6403c9b26f0c62caa51c0920e94f541ff52d110aba4772ea4a+-- hash: a94da93c764c9d1455223f44b3b263abe47e9505f0c4b28f0ea2319a110ae01f name: fakedata-version: 0.2.0+version: 0.2.1 synopsis: Library for producing fake data description: Please see the README on GitHub at <https://github.com/psibi/fakedata#readme> category: Random, Fake, FakeData@@ -546,12 +546,14 @@ AddressSpec AppSpec BeerSpec+ BookSpec BossaNovaSpec CoffeeSpec CombinatorsSpec FakerSpec GamesSpec InternalSpec+ NameSpec OtherSpec ProviderSpec Paths_fakedata
src/Faker/Book.hs view
@@ -10,7 +10,9 @@ $(generateFakeField "book" "title") -$(generateFakeFieldUnresolved "book" "author")+author :: Fake Text+author =+ Fake (unresolvedResolverWithoutVector bookAuthorProvider resolveBookText) $(generateFakeField "book" "publisher")
src/Faker/Internal.hs view
@@ -60,6 +60,16 @@ items <- provider settings resolveUnresolved settings items resolverFn +randomUnresolvedVecWithoutVector ::+ (MonadThrow m, MonadIO m)+ => FakerSettings+ -> (FakerSettings -> m (Unresolved Text))+ -> (FakerSettings -> Text -> m Text)+ -> m Text+randomUnresolvedVecWithoutVector settings provider resolverFn = do+ items <- provider settings+ resolveUnresolved settings (sequenceA $ pure items) resolverFn+ resolveUnresolved :: (MonadThrow m, MonadIO m) => FakerSettings@@ -206,6 +216,14 @@ -> (FakerSettings -> m Text) unresolvedResolver provider resolverFn = \settings -> randomUnresolvedVec settings provider resolverFn++unresolvedResolverWithoutVector ::+ (MonadThrow m, MonadIO m)+ => (FakerSettings -> m (Unresolved Text))+ -> (FakerSettings -> Text -> m Text)+ -> (FakerSettings -> m Text)+unresolvedResolverWithoutVector provider resolverFn =+ \settings -> randomUnresolvedVecWithoutVector settings provider resolverFn uprStr :: String -> String uprStr [] = []
src/Faker/Provider/Book.hs view
@@ -13,7 +13,7 @@ import Data.Yaml import Faker import Faker.Internal-import Faker.Provider.Name (nameProvider, resolveNameText)+import Faker.Provider.Name (nameProvider, resolveNameField, resolveNameText) import Faker.Provider.TH import Language.Haskell.TH @@ -49,7 +49,9 @@ $(genParserUnresolved "book" "author") -$(genProviderUnresolved "book" "author")+bookAuthorProvider ::+ (MonadThrow m, MonadIO m) => FakerSettings -> m (Unresolved Text)+bookAuthorProvider settings = fetchData settings Book parseBookAuthorUnresolved $(genParser "book" "publisher")
+ test/BookSpec.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-}++module BookSpec where++import Config+import Control.Monad.Catch+import Control.Monad.IO.Class+import qualified Data.Map as M+import Data.Text hiding (all, map)+import qualified Data.Text as T+import qualified Data.Text.IO as TIO+import Data.Vector (Vector)+import qualified Data.Vector as V+import Faker+import Faker.Book+import Test.Hspec++isText :: Text -> Bool+isText x = T.length x >= 1++spec :: Spec+spec = do+ describe "Faker Generate for Book" $ do+ it "title" $ do+ item <- generate title+ item `shouldSatisfy` isText+ it "Author" $ do+ item <- generate author+ item `shouldSatisfy` isText+ it "Publisher" $ do+ item <- generate publisher+ item `shouldSatisfy` isText+ it "Genre" $ do+ item <- generate genre+ item `shouldSatisfy` isText
test/FakerSpec.hs view
@@ -161,9 +161,7 @@ describe "Finance" $ do it "visa" $ do item <- generate visa- print item item `shouldSatisfy` isText it "mastercard" $ do item <- generate mastercard- print item item `shouldSatisfy` isText
+ test/NameSpec.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-}++module NameSpec where++import Config+import Control.Monad.Catch+import Control.Monad.IO.Class+import qualified Data.Map as M+import Data.Text hiding (all, map)+import qualified Data.Text as T+import qualified Data.Text.IO as TIO+import Data.Vector (Vector)+import qualified Data.Vector as V+import Faker+import Faker.Name+import Test.Hspec++isText :: Text -> Bool+isText x = T.length x >= 1++spec :: Spec+spec = do+ describe "Faker Generate for Name" $ do+ it "name" $ do+ item <- generate name+ item `shouldSatisfy` isText
test/OtherSpec.hs view
@@ -34,9 +34,9 @@ (setLocale "en-PAK" defaultFakerSettings) nameWithMiddle (ctries) `shouldBe` "Zia Ash Ash"- -- it "name with middle - au" $ do- -- ctries <-- -- generateWithSettings- -- (setLocale "en-AU" defaultFakerSettings)- -- nameWithMiddle- -- (ctries) `shouldBe` "Zia Ash Ash"+ it "name with middle - au" $ do+ ctries <-+ generateWithSettings+ (setLocale "en-AU" defaultFakerSettings)+ nameWithMiddle+ (ctries) `shouldBe` "Georgia Grady Grady"