Skip to content

Single test runner constructor in workspace.edn causes exception #265

@svdo

Description

@svdo

Describe the bug
When running commands like clj -M:poly check, having a single test runner constructor in workspace.edn causes an exception "Don't know how to create ISeq from: clojure.lang.Symbol". See full stack trace below.

To Reproduce
Steps to reproduce the behavior:

  1. In your workspace.edn, put this test runner constructor declaration: :test {:create-test-runner polylith-kaocha.test-runner/create}.
  2. Run poly check
  3. See error

Expected behavior
Should run normally.

Work-around
This issue can be worked around by putting the creator in a vector, like so:

{ ;; workspace.edn contents
 :test {:create-test-runner [polylith-kaocha.test-runner/create]}
}

Full stack trace

#error {
 :cause Don't know how to create ISeq from: clojure.lang.Symbol
 :via
 [{:type java.lang.IllegalArgumentException
   :message Don't know how to create ISeq from: clojure.lang.Symbol
   :at [clojure.lang.RT seqFrom RT.java 557]}]
 :trace
 [[clojure.lang.RT seqFrom RT.java 557]
  [clojure.lang.RT seq RT.java 537]
  [clojure.core$seq__5467 invokeStatic core.clj 139]
  [clojure.core$seq__5467 invoke core.clj 139]
  [polylith.clj.core.validator.m109_invalid_test_runner_constructor$errors$iter__4025__4031$fn__4032$iter__4027__4038$fn__4039 invoke m109_invalid_test_runner_constructor.clj 51]
  [clojure.lang.LazySeq sval LazySeq.java 42]
  [clojure.lang.LazySeq seq LazySeq.java 51]
  [clojure.lang.RT seq RT.java 535]
  [clojure.core$seq__5467 invokeStatic core.clj 139]
  [clojure.core$seq__5467 invoke core.clj 139]
  [polylith.clj.core.validator.m109_invalid_test_runner_constructor$errors$iter__4025__4031$fn__4032 invoke m109_invalid_test_runner_constructor.clj 51]
  [clojure.lang.LazySeq sval LazySeq.java 42]
  [clojure.lang.LazySeq seq LazySeq.java 51]
  [clojure.lang.RT seq RT.java 535]
  [clojure.core$seq__5467 invokeStatic core.clj 139]
  [clojure.core.protocols$seq_reduce invokeStatic protocols.clj 24]
  [clojure.core.protocols$fn__8236 invokeStatic protocols.clj 75]
  [clojure.core.protocols$fn__8236 invoke protocols.clj 75]
  [clojure.core.protocols$fn__8178$G__8173__8191 invoke protocols.clj 13]
  [clojure.core$reduce invokeStatic core.clj 6886]
  [clojure.core$group_by invokeStatic core.clj 7214]
  [clojure.core$group_by invoke core.clj 7214]
  [polylith.clj.core.validator.m109_invalid_test_runner_constructor$errors invokeStatic m109_invalid_test_runner_constructor.clj 54]
  [polylith.clj.core.validator.m109_invalid_test_runner_constructor$errors invoke m109_invalid_test_runner_constructor.clj 50]
  [polylith.clj.core.validator.core$validate_ws invokeStatic core.clj 32]
  [polylith.clj.core.validator.core$validate_ws invoke core.clj 23]
  [polylith.clj.core.validator.interface$validate_ws invokeStatic interface.clj 26]
  [polylith.clj.core.validator.interface$validate_ws invoke interface.clj 25]
  [polylith.clj.core.workspace.core$enrich_workspace invokeStatic core.clj 41]
  [polylith.clj.core.workspace.core$enrich_workspace invoke core.clj 28]
  [polylith.clj.core.workspace.interface$enrich_workspace invokeStatic interface.clj 7]
  [polylith.clj.core.workspace.interface$enrich_workspace invoke interface.clj 6]
  [polylith.clj.core.command.core$read_workspace invokeStatic core.clj 54]
  [polylith.clj.core.command.core$read_workspace invoke core.clj 47]
  [polylith.clj.core.command.core$workspace_reader_fn$fn__31598 invoke core.clj 61]
  [polylith.clj.core.command.core$execute invokeStatic core.clj 67]
  [polylith.clj.core.command.core$execute invoke core.clj 63]
  [polylith.clj.core.command.interface$execute_command invokeStatic interface.clj 5]
  [polylith.clj.core.command.interface$execute_command invoke interface.clj 4]
  [polylith.clj.core.poly_cli.core$_main invokeStatic core.clj 33]
  [polylith.clj.core.poly_cli.core$_main doInvoke core.clj 7]
  [clojure.lang.RestFn applyTo RestFn.java 137]
  [clojure.lang.Var applyTo Var.java 705]
  [clojure.core$apply invokeStatic core.clj 667]
  [clojure.main$main_opt invokeStatic main.clj 514]
  [clojure.main$main_opt invoke main.clj 510]
  [clojure.main$main invokeStatic main.clj 664]
  [clojure.main$main doInvoke main.clj 616]
  [clojure.lang.RestFn applyTo RestFn.java 137]
  [clojure.lang.Var applyTo Var.java 705]
  [clojure.main main main.java 40]]}

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions