Skip to content

Commit dc767f1

Browse files
committed
Merge with other commits
1 parent e98d79b commit dc767f1

4 files changed

Lines changed: 42 additions & 45 deletions

File tree

cardano-cli/src/Cardano/CLI/EraBased/Options/Common.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -903,9 +903,8 @@ pUrl l h =
903903
urlReader = do
904904
urlStr <- readerAsk
905905
let urlText = Text.pack urlStr
906-
case L.textToUrl (Text.length urlText) urlText of
907-
Nothing -> Opt.readerError $ "URL must be 64 bytes or fewer, got: " <> urlStr
908-
Just url -> pure url
906+
maybe (Opt.readerError $ "URL must be 64 bytes or fewer, got: " <> urlStr) pure $
907+
L.textToUrl 128 urlText
909908

910909
pGovActionDeposit :: Parser Lovelace
911910
pGovActionDeposit =

cardano-cli/src/Cardano/CLI/EraBased/Options/Governance/DRep.hs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,21 @@ module Cardano.CLI.EraBased.Options.Governance.DRep
99
)
1010
where
1111

12-
import Cardano.Api
12+
import Cardano.Api
1313
import qualified Cardano.Api.Ledger as L
14-
import Cardano.Api.Shelley (Hash (DRepMetadataHash))
15-
16-
import Cardano.CLI.Commands.Hash (HashGoal (..))
17-
import Cardano.CLI.Environment
18-
import Cardano.CLI.EraBased.Commands.Governance.DRep
19-
import Cardano.CLI.EraBased.Options.Common
20-
import Cardano.CLI.Parser
21-
import Cardano.CLI.Read
22-
import Cardano.CLI.Types.Common hiding (CheckHash)
23-
import Cardano.CLI.Types.Key
24-
25-
import Control.Applicative
26-
import Data.Foldable
27-
import Data.String
28-
import Options.Applicative (Parser)
14+
import Cardano.Api.Shelley (Hash (DRepMetadataHash))
15+
import Cardano.CLI.Commands.Hash (HashGoal (..))
16+
import Cardano.CLI.Environment
17+
import Cardano.CLI.EraBased.Commands.Governance.DRep
18+
import Cardano.CLI.EraBased.Options.Common
19+
import Cardano.CLI.Parser
20+
import Cardano.CLI.Read
21+
import Cardano.CLI.Types.Common hiding (CheckHash)
22+
import Cardano.CLI.Types.Key
23+
import Control.Applicative
24+
import Data.Foldable
25+
import Data.String
26+
import Options.Applicative (Parser)
2927
import qualified Options.Applicative as Opt
3028

3129
pGovernanceDRepCmds

cardano-cli/src/Cardano/CLI/EraBased/Options/StakePool.hs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,15 @@ module Cardano.CLI.EraBased.Options.StakePool
1111
)
1212
where
1313

14-
import Cardano.Api
14+
import Cardano.Api
1515
import qualified Cardano.Api.Ledger as L
16-
import Cardano.Api.Shelley (Hash (StakePoolMetadataHash))
17-
16+
import Cardano.Api.Shelley (Hash (StakePoolMetadataHash))
1817
import qualified Cardano.CLI.Commands.Hash as Cmd
19-
import Cardano.CLI.Environment (EnvCli (..))
18+
import Cardano.CLI.Environment (EnvCli (..))
2019
import qualified Cardano.CLI.EraBased.Commands.StakePool as Cmd
21-
import Cardano.CLI.EraBased.Options.Common
22-
20+
import Cardano.CLI.EraBased.Options.Common
2321
import qualified Data.Foldable as F
24-
import Options.Applicative hiding (help, str)
22+
import Options.Applicative hiding (help, str)
2523
import qualified Options.Applicative as Opt
2624

2725
pStakePoolCmds
@@ -79,6 +77,7 @@ pPoolMetadataSource =
7977
<$> pUrl "pool-metadata-url" "URL pointing to the JSON Metadata file to hash."
8078
]
8179

80+
-- TODO: You need to figure out where the url length limit comes from and how it should be enforced
8281
pPoolMetadataHashGoal :: Parser (Cmd.HashGoal (Hash StakePoolMetadata))
8382
pPoolMetadataHashGoal =
8483
F.asum

cardano-cli/test/cardano-cli-test/Test/Cli/Parser.hs

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,27 @@ module Test.Cli.Parser
1111
)
1212
where
1313

14-
import Cardano.Api (Lovelace)
14+
import Cardano.Api (Lovelace)
1515
import qualified Cardano.Api.Ledger as L
16-
import Cardano.CLI.EraBased.Options.Common (integralParsecParser,
17-
pUrl,
18-
pairIntegralParsecParser,
19-
parseLovelace)
20-
21-
import Data.Bits (Bits)
22-
import Data.Data (Proxy (..), Typeable)
23-
import Data.Either (isLeft, isRight)
24-
import Data.Maybe (isJust, isNothing)
25-
import Data.Word (Word16, Word64)
26-
import Options.Applicative (defaultPrefs, execParserPure, getParseResult, info)
27-
import qualified Text.Parsec as Parsec
28-
29-
import Hedgehog (Gen, Property, assert, property, (===))
30-
import Hedgehog.Extras (assertWith, propertyOnce)
16+
import Cardano.CLI.EraBased.Options.Common
17+
( integralParsecParser
18+
, pUrl
19+
, pairIntegralParsecParser
20+
, parseLovelace
21+
)
22+
import Data.Bits (Bits)
23+
import Data.Data (Proxy (..), Typeable)
24+
import Data.Either (isLeft, isRight)
25+
import Data.Maybe (isJust, isNothing)
26+
import Data.Word (Word16, Word64)
27+
import Hedgehog (Gen, Property, assert, property, (===))
28+
import Hedgehog.Extras (assertWith, propertyOnce)
3129
import qualified Hedgehog.Gen as Gen
32-
import Hedgehog.Internal.Property (forAll)
30+
import Hedgehog.Internal.Property (forAll)
3331
import qualified Hedgehog.Range as Gen
3432
import qualified Hedgehog.Range as Range
33+
import Options.Applicative (defaultPrefs, execParserPure, getParseResult, info)
34+
import qualified Text.Parsec as Parsec
3535

3636
-- | Execute me with:
3737
-- @cabal test cardano-cli-test --test-options '-p "/integral reader/"'@
@@ -135,8 +135,9 @@ hprop_url_reader :: Property
135135
hprop_url_reader = propertyOnce $ do
136136
assertWith (runUrlParser "http://example.com") isJust
137137
assertWith (runUrlParser (replicate 64 'x')) isJust
138-
assertWith (runUrlParser (replicate 65 'x')) isNothing
139-
assertWith (runUrlParser (replicate 100 'a')) isNothing
138+
assertWith (runUrlParser (replicate 65 'x')) isJust
139+
assertWith (runUrlParser (replicate 100 'a')) isJust
140+
assertWith (runUrlParser (replicate 129 'a')) isNothing
140141
where
141142
runUrlParser :: String -> Maybe L.Url
142143
runUrlParser url =

0 commit comments

Comments
 (0)