def test_minified_dependencies_1(self): # foo -> bar -> baz dep_map = {'foo': ['bar'], 'bar': ['baz'], 'baz': []} target_map = self.create_dependencies(dep_map) assert SetupPy.minified_dependencies(target_map['foo']) == OrderedSet([target_map['bar']]) assert SetupPy.minified_dependencies(target_map['bar']) == OrderedSet([target_map['baz']]) assert SetupPy.minified_dependencies(target_map['baz']) == OrderedSet()
def test_minified_dependencies_diamond(self): # bar <-- foo --> baz # | | # `----> bak <----' dep_map = {'foo': ['bar', 'baz'], 'bar': ['bak'], 'baz': ['bak'], 'bak': []} target_map = self.create_dependencies(dep_map) assert SetupPy.minified_dependencies(target_map['foo']) == OrderedSet( [target_map['baz'], target_map['bar']]) assert SetupPy.minified_dependencies(target_map['bar']) == OrderedSet([target_map['bak']]) assert SetupPy.minified_dependencies(target_map['baz']) == OrderedSet([target_map['bak']])
def test_minified_dependencies_2(self): # foo --> baz # | ^ # v | # bar ----' dep_map = {'foo': ['bar', 'baz'], 'bar': ['baz'], 'baz': []} target_map = create_dependencies(dep_map) assert SetupPy.minified_dependencies(target_map['foo']) == OrderedSet([target_map['bar']]) assert SetupPy.minified_dependencies(target_map['bar']) == OrderedSet([target_map['baz']]) assert SetupPy.minified_dependencies(target_map['baz']) == OrderedSet()
def test_binary_target_injected_into_minified_dependencies(self): foo_bin_dep = self.make_target( spec = ':foo_bin_dep', target_type = PythonLibrary, ) foo_bin = self.make_target( spec = ':foo_bin', target_type = PythonBinary, entry_point = 'foo.bin.foo', dependencies = [ foo_bin_dep, ] ) foo = self.make_target( spec = ':foo', target_type = PythonLibrary, provides = PythonArtifact( name = 'foo', version = '0.0.0', ).with_binaries( foo_binary = ':foo_bin', ) ) assert SetupPy.minified_dependencies(foo) == OrderedSet([foo_bin, foo_bin_dep]) entry_points = dict(SetupPy.iter_entry_points(foo)) assert entry_points == {'foo_binary': 'foo.bin.foo'} with self.run_execute(foo, recursive=False) as setup_py_command: setup_py_command.run_one.assert_called_with(foo) with self.run_execute(foo, recursive=True) as setup_py_command: setup_py_command.run_one.assert_called_with(foo)
def test_binary_target_injected_into_minified_dependencies(self): with ParseContext.temp(): foo = python_library( name = 'foo', provides = setup_py( name = 'foo', version = '0.0.0', ).with_binaries( foo_binary = pants(':foo_bin') ) ) foo_bin = python_binary( name = 'foo_bin', entry_point = 'foo.bin.foo', dependencies = [ pants(':foo_bin_dep') ] ) foo_bin_dep = python_library( name = 'foo_bin_dep' ) assert SetupPy.minified_dependencies(foo) == OrderedSet([foo_bin, foo_bin_dep]) entry_points = dict(SetupPy.iter_entry_points(foo)) assert entry_points == {'foo_binary': 'foo.bin.foo'} with self.run_execute(foo, recursive=False) as setup_py_command: setup_py_command.run_one.assert_called_with(foo) with self.run_execute(foo, recursive=True) as setup_py_command: setup_py_command.run_one.assert_called_with(foo)
def test_binary_cycle(self): with ParseContext.temp(): foo = python_library( name = 'foo', provides = setup_py( name = 'foo', version = '0.0.0', ).with_binaries( foo_binary = pants(':foo_bin') ) ) foo_bin = python_binary( name = 'foo_bin', entry_point = 'foo.bin.foo', dependencies = [ pants(':foo') ] ) with pytest.raises(TargetDefinitionException): SetupPy.minified_dependencies(foo)
def test_binary_cycle(self): foo = self.make_target( spec = ':foo', target_type = PythonLibrary, provides = PythonArtifact( name = 'foo', version = '0.0.0', ).with_binaries( foo_binary = ':foo_bin', ) ) foo_bin = self.make_target( spec = ':foo_bin', target_type = PythonBinary, entry_point = 'foo.bin.foo', dependencies = [ foo, ], ) with pytest.raises(TargetDefinitionException): SetupPy.minified_dependencies(foo)
def test_binary_target_injected_into_minified_dependencies_with_provider(self): bar_bin_dep = self.make_target( spec = ':bar_bin_dep', target_type = PythonLibrary, provides = PythonArtifact( name = 'bar_bin_dep', version = '0.0.0', ) ) bar_bin = self.make_target( spec = ':bar_bin', target_type = PythonBinary, entry_point = 'bar.bin.bar', dependencies = [ bar_bin_dep, ], ) bar = self.make_target( spec = ':bar', target_type = PythonLibrary, provides = PythonArtifact( name = 'bar', version = '0.0.0', ).with_binaries( bar_binary = ':bar_bin' ) ) # TODO(pl): Why is this set ordered? Does the order actually matter? assert SetupPy.minified_dependencies(bar) == OrderedSet([bar_bin, bar_bin_dep]) entry_points = dict(SetupPy.iter_entry_points(bar)) assert entry_points == {'bar_binary': 'bar.bin.bar'} with self.run_execute(bar, recursive=False) as setup_py_command: setup_py_command.run_one.assert_called_with(bar) with self.run_execute(bar, recursive=True) as setup_py_command: setup_py_command.run_one.assert_has_calls([ call(bar), call(bar_bin_dep) ], any_order=True)
def test_binary_target_injected_into_minified_dependencies_with_provider(self): with ParseContext.temp(): bar = python_library( name = 'bar', provides = setup_py( name = 'bar', version = '0.0.0', ).with_binaries( bar_binary = pants(':bar_bin') ) ) bar_bin = python_binary( name = 'bar_bin', entry_point = 'bar.bin.bar', dependencies = [ pants(':bar_bin_dep') ] ) bar_bin_dep = python_library( name = 'bar_bin_dep', provides = setup_py( name = 'bar_bin_dep', version = '0.0.0', ) ) assert SetupPy.minified_dependencies(bar) == OrderedSet([bar_bin, bar_bin_dep]) entry_points = dict(SetupPy.iter_entry_points(bar)) assert entry_points == {'bar_binary': 'bar.bin.bar'} with self.run_execute(bar, recursive=False) as setup_py_command: setup_py_command.run_one.assert_called_with(bar) with self.run_execute(bar, recursive=True) as setup_py_command: setup_py_command.run_one.assert_has_calls([ call(bar), call(bar_bin_dep) ], any_order=True)