influxdb 1.7.0 → 1.7.1
raw patch · 5 files changed
+67/−3 lines, 5 filesdep +raw-strings-qqdep +tastydep +tasty-hunitdep ~basedep ~containersdep ~timePVP ok
version bump matches the API change (PVP)
Dependencies added: raw-strings-qq, tasty, tasty-hunit
Dependency ranges changed: base, containers, time
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- influxdb.cabal +16/−1
- src/Database/InfluxDB/Internal/Text.hs +4/−1
- src/Database/InfluxDB/Line.hs +1/−1
- tests/regressions.hs +42/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for influxdb +## v1.7.1 - 2019-07-19++* Escape backslashes when encoding `Line`s (#75)+ ## v1.7.0 - 2019-05-03 * Support GHC 8.8.1-alpha1
influxdb.cabal view
@@ -1,5 +1,5 @@ name: influxdb-version: 1.7.0+version: 1.7.1 synopsis: Haskell client library for InfluxDB description: @influxdb@ is a Haskell client library for InfluxDB.@@ -102,6 +102,21 @@ , doctest >= 0.11.3 && < 0.17 , influxdb , template-haskell+ ghc-options: -Wall -threaded+ hs-source-dirs: tests+ default-language: Haskell2010++test-suite regressions+ type: exitcode-stdio-1.0+ main-is: regressions.hs+ build-depends:+ base+ , containers+ , influxdb+ , tasty+ , tasty-hunit+ , time+ , raw-strings-qq >= 1.1 && < 1.2 ghc-options: -Wall -threaded hs-source-dirs: tests default-language: Haskell2010
src/Database/InfluxDB/Internal/Text.hs view
@@ -5,6 +5,7 @@ , escapeSpaces , escapeDoubleQuotes , escapeSingleQuotes+ , escapeBackslashes ) where import Data.Text (Text) import qualified Data.Text as T@@ -13,9 +14,11 @@ , escapeEqualSigns , escapeSpaces , escapeDoubleQuotes- , escapeSingleQuotes :: Text -> Text+ , escapeSingleQuotes+ , escapeBackslashes :: Text -> Text escapeCommas = T.replace "," "\\," escapeEqualSigns = T.replace "=" "\\=" escapeSpaces = T.replace " " "\\ " escapeDoubleQuotes = T.replace "\"" "\\\"" escapeSingleQuotes = T.replace "'" "\\'"+escapeBackslashes = T.replace "\\" "\\\\"
src/Database/InfluxDB/Line.hs view
@@ -143,7 +143,7 @@ escapeMeasurement (Measurement text) = escapeCommas $ escapeSpaces text escapeStringField :: Text -> Text-escapeStringField = escapeDoubleQuotes+escapeStringField = escapeDoubleQuotes . escapeBackslashes buildFieldValue :: LineField -> B.Builder buildFieldValue = \case
+ tests/regressions.hs view
@@ -0,0 +1,42 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+import Data.Time.Clock (UTCTime)+import Test.Tasty+import Test.Tasty.HUnit+import Text.RawString.QQ (r)+import qualified Data.Map as M++import Database.InfluxDB+import Database.InfluxDB.Line+import Database.InfluxDB.Write (writeByteString)+import qualified Database.InfluxDB.Format as F++main :: IO ()+main = defaultMain tests++tests :: TestTree+tests = testGroup "regression tests"+ [ issue75+ ]++-- https://github.com/maoe/influxdb-haskell/issues/75++issue75 :: TestTree+issue75 = testCaseSteps "issue #75" $ \step -> do+ step "Checking encoded value"+ let string = [r|bl\"a|]+ let encoded = encodeLine (scaleTo Nanosecond)+ $ Line "testing" mempty+ (M.singleton "test" $ FieldString string)+ (Nothing :: Maybe UTCTime)+ encoded @?= [r|testing test="bl\\\"a"|]++ step "Preparing a test database"+ let db = "issue75"+ let p = queryParams db+ manage p $ formatQuery ("DROP DATABASE "%F.database) db+ manage p $ formatQuery ("CREATE DATABASE "%F.database) db++ step "Checking server response"+ let wp = writeParams db+ writeByteString wp encoded