|  | @@ -1496,6 +1496,48 @@ class ProjectTest(DockerClientTestCase):
 | 
	
		
			
				|  |  |          output = container.logs()
 | 
	
		
			
				|  |  |          assert output == b"This is the secret\n"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @v3_only()
 | 
	
		
			
				|  |  | +    def test_project_up_with_added_secrets(self):
 | 
	
		
			
				|  |  | +        node = create_host_file(self.client, os.path.abspath('tests/fixtures/secrets/default'))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        config_data = build_config(
 | 
	
		
			
				|  |  | +            version=V3_1,
 | 
	
		
			
				|  |  | +            services=[{
 | 
	
		
			
				|  |  | +                'name': 'web',
 | 
	
		
			
				|  |  | +                'image': 'busybox:latest',
 | 
	
		
			
				|  |  | +                'command': 'cat /run/secrets/special',
 | 
	
		
			
				|  |  | +                # 'secrets': [
 | 
	
		
			
				|  |  | +                #     types.ServiceSecret.parse({'source': 'super', 'target': 'special'}),
 | 
	
		
			
				|  |  | +                # ],
 | 
	
		
			
				|  |  | +                'environment': ['constraint:node=={}'.format(node if node is not None else '*')]
 | 
	
		
			
				|  |  | +            }],
 | 
	
		
			
				|  |  | +            secrets={
 | 
	
		
			
				|  |  | +                'super': {
 | 
	
		
			
				|  |  | +                    'file': os.path.abspath('tests/fixtures/secrets/default'),
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        project = Project.from_config(
 | 
	
		
			
				|  |  | +            client=self.client,
 | 
	
		
			
				|  |  | +            name='composetest',
 | 
	
		
			
				|  |  | +            config_data=config_data,
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +        project.up()
 | 
	
		
			
				|  |  | +        project.stop()
 | 
	
		
			
				|  |  | +        project.services[0].secrets = [
 | 
	
		
			
				|  |  | +            types.ServiceSecret.parse({'source': 'super', 'target': 'special'})
 | 
	
		
			
				|  |  | +        ]
 | 
	
		
			
				|  |  | +        project.up()
 | 
	
		
			
				|  |  | +        project.stop()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        containers = project.containers(stopped=True)
 | 
	
		
			
				|  |  | +        assert len(containers) == 1
 | 
	
		
			
				|  |  | +        container, = containers
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        output = container.logs()
 | 
	
		
			
				|  |  | +        assert output == b"This is the secret\n"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @v2_only()
 | 
	
		
			
				|  |  |      def test_initialize_volumes_invalid_volume_driver(self):
 | 
	
		
			
				|  |  |          vol_name = '{0:x}'.format(random.getrandbits(32))
 |