From c4607af9ca0cb3b4b44cda31ba623ac56c9009f9 Mon Sep 17 00:00:00 2001 From: Kailashnath Date: Thu, 9 Jan 2020 16:04:20 -0500 Subject: [PATCH] falsy valued attrs should not be dropped (#1) Falsy valued attributes should not be dropped --- src/riemann/codec.clj | 2 +- test/riemann/codec_test.clj | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/riemann/codec.clj b/src/riemann/codec.clj index 2c34a79..a6ba3ec 100644 --- a/src/riemann/codec.clj +++ b/src/riemann/codec.clj @@ -72,7 +72,7 @@ (.setTime event (long (:time e))))) (when (:ttl e) (.setTtl event (:ttl e))) (doseq [k (clojure.set/difference (set (keys e)) event-keys)] - (when-let [v (get e k)] + (when-some [v (get e k)] (let [a (Proto$Attribute/newBuilder)] (.setKey a (str (when (namespace k) (str (namespace k) \/)) (name k))) (.setValue a (str v)) diff --git a/test/riemann/codec_test.clj b/test/riemann/codec_test.clj index 126c55b..8b6f68d 100644 --- a/test/riemann/codec_test.clj +++ b/test/riemann/codec_test.clj @@ -118,3 +118,15 @@ expected (dissoc original :empty-attr)] (is (= (msg {:events [expected]}) (roundtrip {:events [original]}))))) + +(deftest false-custom-attributes + (let [original {:host "host.1" + :service "service.1" + :nil-attr nil + :false-attr false} + expected (-> original + (dissoc :nil-attr) + (assoc :false-attr "false"))] + (is (= (msg {:events [expected]}) + (roundtrip {:events [original]})) + "false values should be converted to string and not be removed")))