packages feed

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 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