def test_RosPackage_get_depends(): from rospkg import RosPack, ResourceNotFound, get_ros_root path = get_package_test_path() r = RosPack(ros_paths=[path]) # test on multiple calls to bad package -- there was an ordering # issue in the logic that caused get_depends() to return an empty # set on the second call. for i in range(1, 4): try: r.get_depends("bad", implicit=True) assert False, "should have raised" except ResourceNotFound: pass # TODO: need one more step assert set(r.get_depends("baz")) == set(["foo", "bar"]) assert r.get_depends("bar") == ["foo"] assert r.get_depends("foo") == [] if get_ros_root() and rospack_is_available(): # stress test: test default environment against rospack r = RosPack() for p in rospack_list(): retval = set(r.get_depends(p)) rospackval = set(rospack_depends(p)) assert retval == rospackval, "[%s]: %s vs. %s" % (p, retval, rospackval)
def test_RosPackage_get_depends(): from rospkg import RosPack, ResourceNotFound, get_ros_root path = get_package_test_path() r = RosPack(ros_paths=[path]) # test on multiple calls to bad package -- there was an ordering # issue in the logic that caused get_depends() to return an empty # set on the second call. for i in range(1, 4): try: r.get_depends('bad', implicit=True) assert False, "should have raised" except ResourceNotFound: pass # TODO: need one more step assert set(r.get_depends('baz')) == set(['foo', 'bar']) assert r.get_depends('bar') == ['foo'] assert r.get_depends('foo') == [] if get_ros_root() and rospack_is_available(): # stress test: test default environment against rospack r = RosPack() for p in rospack_list(): retval = set(r.get_depends(p)) rospackval = set(rospack_depends(p)) assert retval == rospackval, "[%s]: %s vs. %s" % (p, retval, rospackval)
def test_RosPack_no_env(): # regression test for #3680 from rospkg import RosPack, ResourceNotFound try: environ_copy = os.environ.copy() if 'ROS_ROOT' in os.environ: del os.environ['ROS_ROOT'] if 'ROS_PACKAGE_PATH' in os.environ: del os.environ['ROS_PACKAGE_PATH'] r = RosPack() try: r.get_depends('roscpp') assert False, "should have raised" except ResourceNotFound: pass finally: os.environ = environ_copy
def test_RosPackage_get_depends_explicit(): from rospkg import RosPack, get_ros_root path = get_package_test_path() r = RosPack(ros_paths=[path]) implicit=False assert set(r.get_depends('baz', implicit)) == set(['bar', 'foo']) assert r.get_depends('bar', implicit) == ['foo'] assert r.get_depends('foo', implicit) == [] if get_ros_root() and rospack_is_available(): # stress test: test default environment against rospack r = RosPack() for p in rospack_list(): retval = set(r.get_depends(p, implicit)) rospackval = set(rospack_depends1(p)) assert retval == rospackval, "[%s]: %s vs. %s"%(p, retval, rospackval)
def test_RosPackage_get_depends_explicit(): from rospkg import RosPack, get_ros_root path = get_package_test_path() r = RosPack(ros_paths=[path]) implicit = False assert set(r.get_depends('baz', implicit)) == set(['bar', 'foo']) assert r.get_depends('bar', implicit) == ['foo'] assert r.get_depends('foo', implicit) == [] if get_ros_root() and rospack_is_available(): # stress test: test default environment against rospack r = RosPack() for p in rospack_list(): retval = set(r.get_depends(p, implicit)) rospackval = set(rospack_depends1(p)) assert retval == rospackval, "[%s]: %s vs. %s" % (p, retval, rospackval)
def get_all_deps(packages): rp = RosPack() all_deps = set() for pack in packages: depends = rp.get_depends(pack) for dep in depends: all_deps.add(dep) for pack in packages: all_deps.add(pack) return all_deps
def genmain_(argv, progname, gen): rospack = RosPack() options, args = parse_options(argv, progname) try: if len(args) < 2: print("ERROR: please specify args") if not os.path.exists(options.outdir): # This script can be run multiple times in parallel. We # don't mind if the makedirs call fails because somebody # else snuck in and created the directory before us. try: os.makedirs(options.outdir) except OSError as e: if not os.path.exists(options.outdir): raise options.outdir = os.path.abspath(options.outdir) search_path = genmsg.command_line.includepath_to_dict( options.includepath) search_path['std_msgs'] = [ os.path.join(rospack.get_path('std_msgs'), 'msg') ] for d in rospack.get_depends(options.package, implicit=False): search_path[d] = [os.path.join(rospack.get_path(d), 'msg')] retcode = gen.generate_messages(options.package, args[1:], options.outdir, search_path) except genmsg.InvalidMsgSpec as e: print("ERROR: ", e, file=sys.stderr) retcode = 1 except MsgGenerationException as e: print("ERROR: ", e, file=sys.stderr) retcode = 2 except Exception as e: traceback.print_exc() print("ERROR: ", e) retcode = 3 return (retcode or 0)