@@ -43,6 +43,56 @@ def test_inherited_tags(self):
4343 assert len (measurements ) == 1
4444 assert measurements [0 ]['value' ] == 10
4545
46+ def test_inherit_connection_level_tags (self ):
47+ """test if top level tags are ignored when passing measurement level tags"""
48+ conn = librato .connect ('user_test' , 'key_test' , tags = {'sky' : 'blue' })
49+
50+ q = conn .new_queue ()
51+ q .add_tagged ('user_cpu' , 10 , tags = {"hi" : "five" }, inherit_tags = True )
52+
53+ measurements = q .tagged_chunks [0 ]['measurements' ]
54+
55+ assert len (measurements ) == 1
56+ assert measurements [0 ].get ('tags' , {}) == {'sky' : 'blue' , 'hi' : 'five' }
57+
58+ def test_ignore_connection_queue_level_tags (self ):
59+ """test if queue level tags are ignored when passing measurement level tags"""
60+ conn = librato .connect ('user_test' , 'key_test' , tags = {'sky' : 'blue' })
61+
62+ q = conn .new_queue (tags = {"service" : "api" })
63+ q .add_tagged ('user_cpu' , 10 , tags = {"hi" : "five" })
64+ measurements = q .tagged_chunks [0 ]['measurements' ]
65+
66+ assert len (measurements ) == 1
67+ assert measurements [0 ].get ('tags' , {}) == {'hi' : 'five' }
68+
69+ q .submit ()
70+
71+ resp = self .conn .get_tagged ('user_cpu' , duration = 60 , tags_search = "sky=blue" )
72+ assert len (resp ['series' ]) == 0
73+
74+ def test_inherit_queue_connection_level_tags (self ):
75+ """test if queue level tags are ignored when passing measurement level tags"""
76+ conn = librato .connect ('user_test' , 'key_test' , tags = {'sky' : 'blue' , 'company' : 'Librato' })
77+
78+ q = conn .new_queue (tags = {"service" : "api" , "hi" : "four" , "sky" : "red" })
79+ q .add_tagged ('user_cpu' , 100 , tags = {"hi" : "five" }, inherit_tags = True )
80+ measurements = q .tagged_chunks [0 ]['measurements' ]
81+
82+ assert len (measurements ) == 1
83+ assert measurements [0 ].get ('tags' , {}) == {'sky' : 'red' , 'service' : 'api' , 'hi' : 'five' , 'company' : 'Librato' }
84+
85+ def test_inherit_queue_level_tags (self ):
86+ """test if queue level tags are ignored when passing measurement level tags"""
87+ conn = librato .connect ('user_test' , 'key_test' )
88+
89+ q = conn .new_queue (tags = {"service" : "api" , "hi" : "four" })
90+ q .add_tagged ('user_cpu' , 100 , tags = {"hi" : "five" }, inherit_tags = True )
91+ measurements = q .tagged_chunks [0 ]['measurements' ]
92+
93+ assert len (measurements ) == 1
94+ assert measurements [0 ].get ('tags' , {}) == {'service' : 'api' , 'hi' : 'five' }
95+
4696 def test_constructor_tags (self ):
4797 conn = librato .connect ('user_test' , 'key_test' , tags = {'sky' : 'blue' })
4898 q = conn .new_queue (tags = {'sky' : 'red' , 'coal' : 'black' })
@@ -243,7 +293,7 @@ def test_md_measurement_level_tag(self):
243293 q .set_tags ({'hostname' : 'web-1' })
244294
245295 mt1 = int (time .time ()) - 5
246- q .add_tagged ('system_cpu' , 33.22 , time = mt1 , tags = {"user" : "james" })
296+ q .add_tagged ('system_cpu' , 33.22 , time = mt1 , tags = {"user" : "james" }, inherit_tags = True )
247297 q .submit ()
248298
249299 # Ensure both tags get submitted
0 commit comments