@@ -174,6 +174,26 @@ class TestServiceDiscovery(unittest.TestCase):
174174 ])),
175175 }
176176
177+ image_formats = {
178+ # Don't crash on empty string or None
179+ '' : '' ,
180+ None : '' ,
181+ # Shortest possibility
182+ 'alpine' : 'alpine' ,
183+ # Historical docker format
184+ 'nginx:latest' : 'nginx' ,
185+ # Org prefix to be removed
186+ 'datadog/docker-dd-agent:latest-jmx' : 'docker-dd-agent' ,
187+ # Sha-pinning used by many orchestrators
188+ 'redis@sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0' : 'redis' ,
189+ # Quirky pinning used by swarm
190+ 'org/redis:latest@sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0' : 'redis' ,
191+ # Custom registry, simple form
192+ 'myregistry.local:5000/testing/test-image:version' : 'test-image' ,
193+ # Custom registry, most insane form possible
194+ 'myregistry.local:5000/testing/test-image:version@sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0' : 'test-image' ,
195+ }
196+
177197 def setUp (self ):
178198 self .etcd_agentConfig = {
179199 'service_discovery' : True ,
@@ -328,6 +348,16 @@ def test_get_config_templates(self, *args):
328348 self .assertEquals (sd_backend ._get_config_templates (image ), None )
329349 clear_singletons (agentConfig )
330350
351+ @mock .patch ('config.get_auto_confd_path' , return_value = os .path .join (
352+ os .path .dirname (__file__ ), 'fixtures/auto_conf/' ))
353+ @mock .patch ('utils.dockerutil.DockerUtil.client' , return_value = None )
354+ #@mock.patch.object(AbstractConfigStore, 'get_check_tpls', side_effect=_get_check_tpls)
355+ def test_get_image_ident (self , * args ):
356+ sd_backend = get_sd_backend (agentConfig = self .auto_conf_agentConfig )
357+ # normal cases
358+ for image , ident in self .image_formats .iteritems ():
359+ self .assertEquals (ident , sd_backend .config_store ._get_image_ident (image ))
360+
331361 @mock .patch ('config.get_auto_confd_path' , return_value = os .path .join (
332362 os .path .dirname (__file__ ), 'fixtures/auto_conf/' ))
333363 def test_render_template (self , mock_get_auto_confd_path ):
0 commit comments