Skip to content

Commit eef9a56

Browse files
committed
split to #27
1 parent 63190b7 commit eef9a56

File tree

2 files changed

+24
-95
lines changed

2 files changed

+24
-95
lines changed

src/main/groovy/nfcore/plugin/NfcorePipelineObserver.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ class NfcorePipelineObserver implements TraceObserver {
4444
}
4545
configValidator.checkConfigProvided(projectName, config)
4646
configValidator.checkProfileProvided(session.profile, session.commandLine, true)
47-
log.trace "Pipeline is starting! 🚀"
47+
println "Pipeline is starting! 🚀"
4848
}
4949

5050
@Override
5151
void onFlowComplete() {
52-
log.trace "Pipeline complete! 👋"
52+
println "Pipeline complete! 👋"
5353
// TODO dumpParametersToJSON(session.params.outdir, session.params)
5454
}
5555
}
Lines changed: 22 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package nfcore.plugin
22

3-
import ch.qos.logback.classic.Level
4-
import ch.qos.logback.classic.Logger
5-
import ch.qos.logback.classic.spi.ILoggingEvent
6-
import ch.qos.logback.core.read.ListAppender
73
import nfcore.plugin.nfcore.NfcoreConfigValidator
8-
import org.slf4j.LoggerFactory
94
import spock.lang.PendingFeature
105
import spock.lang.Specification
116

@@ -33,27 +28,7 @@ class NfcorePipelineObserverTest extends Specification {
3328
1 * validator.checkProfileProvided('standard', '--foo bar', true)
3429
}
3530

36-
@PendingFeature()
37-
def 'onFlowCreate handles missing metadata gracefully'() {
38-
given:
39-
def validator = Spy(NfcoreConfigValidator)
40-
def observer = new NfcorePipelineObserver(validator)
41-
def session = Mock(nextflow.Session) {
42-
workflowMetadata >> null
43-
config >> [profile: 'standard', configFiles: []]
44-
profile >> 'standard'
45-
commandLine >> ''
46-
}
47-
48-
when:
49-
observer.onFlowCreate(session)
50-
51-
then:
52-
1 * validator.checkConfigProvided(null, { it.profile == 'standard' && it.configFiles == [] })
53-
1 * validator.checkProfileProvided('standard', '', true)
54-
}
55-
56-
def 'onFlowCreate should log start message at TRACE level'() {
31+
def 'onFlowCreate should print the start message'() {
5732
given:
5833
def observer = new NfcorePipelineObserver()
5934
def session = Mock(nextflow.Session) {
@@ -62,102 +37,56 @@ class NfcorePipelineObserverTest extends Specification {
6237
profile >> 'standard'
6338
commandLine >> ''
6439
}
65-
66-
// Set up logging capture
67-
Logger logger = (Logger) LoggerFactory.getLogger(NfcorePipelineObserver)
68-
ListAppender<ILoggingEvent> listAppender = new ListAppender<>()
69-
listAppender.start()
70-
logger.addAppender(listAppender)
71-
def originalLevel = logger.level
72-
logger.setLevel(Level.TRACE)
40+
def out = new ByteArrayOutputStream()
41+
def oldOut = System.out
42+
System.out = new PrintStream(out)
7343

7444
when:
7545
observer.onFlowCreate(session)
46+
System.out.flush()
7647

7748
then:
78-
def logEvents = listAppender.list
79-
logEvents.any { it.level == Level.TRACE && it.message.contains('Pipeline is starting! 🚀') }
49+
out.toString().contains('Pipeline is starting! 🚀')
8050

8151
cleanup:
82-
logger.setLevel(originalLevel)
83-
logger.detachAppender(listAppender)
52+
System.out = oldOut
8453
}
8554

86-
def 'onFlowComplete should log complete message at TRACE level'() {
55+
def 'onFlowComplete should print the complete message'() {
8756
given:
8857
def observer = new NfcorePipelineObserver()
89-
90-
// Set up logging capture
91-
Logger logger = (Logger) LoggerFactory.getLogger(NfcorePipelineObserver)
92-
ListAppender<ILoggingEvent> listAppender = new ListAppender<>()
93-
listAppender.start()
94-
logger.addAppender(listAppender)
95-
def originalLevel = logger.level
96-
logger.setLevel(Level.TRACE)
58+
def out = new ByteArrayOutputStream()
59+
def oldOut = System.out
60+
System.out = new PrintStream(out)
9761

9862
when:
9963
observer.onFlowComplete()
64+
System.out.flush()
10065

10166
then:
102-
def logEvents = listAppender.list
103-
logEvents.any { it.level == Level.TRACE && it.message.contains('Pipeline complete! 👋') }
67+
out.toString().contains('Pipeline complete! 👋')
10468

10569
cleanup:
106-
logger.setLevel(originalLevel)
107-
logger.detachAppender(listAppender)
70+
System.out = oldOut
10871
}
10972

110-
def 'onFlowCreate should NOT log start message below TRACE level'() {
73+
@PendingFeature()
74+
def 'onFlowCreate handles missing metadata gracefully'() {
11175
given:
112-
def observer = new NfcorePipelineObserver()
76+
def validator = Spy(NfcoreConfigValidator)
77+
def observer = new NfcorePipelineObserver(validator)
11378
def session = Mock(nextflow.Session) {
114-
workflowMetadata >> [projectName: 'test-pipeline']
115-
config >> [:]
79+
workflowMetadata >> null
80+
config >> [profile: 'standard', configFiles: []]
11681
profile >> 'standard'
11782
commandLine >> ''
11883
}
11984

120-
// Set up logging capture with DEBUG level
121-
Logger logger = (Logger) LoggerFactory.getLogger(NfcorePipelineObserver)
122-
ListAppender<ILoggingEvent> listAppender = new ListAppender<>()
123-
listAppender.start()
124-
logger.addAppender(listAppender)
125-
def originalLevel = logger.level
126-
logger.setLevel(Level.DEBUG)
127-
12885
when:
12986
observer.onFlowCreate(session)
13087

13188
then:
132-
def logEvents = listAppender.list
133-
!logEvents.any { it.message.contains('Pipeline is starting! 🚀') }
134-
135-
cleanup:
136-
logger.setLevel(originalLevel)
137-
logger.detachAppender(listAppender)
138-
}
139-
140-
def 'onFlowComplete should NOT log complete message below TRACE level'() {
141-
given:
142-
def observer = new NfcorePipelineObserver()
143-
144-
// Set up logging capture with DEBUG level
145-
Logger logger = (Logger) LoggerFactory.getLogger(NfcorePipelineObserver)
146-
ListAppender<ILoggingEvent> listAppender = new ListAppender<>()
147-
listAppender.start()
148-
logger.addAppender(listAppender)
149-
def originalLevel = logger.level
150-
logger.setLevel(Level.DEBUG)
151-
152-
when:
153-
observer.onFlowComplete()
154-
155-
then:
156-
def logEvents = listAppender.list
157-
!logEvents.any { it.message.contains('Pipeline complete! 👋') }
158-
159-
cleanup:
160-
logger.setLevel(originalLevel)
161-
logger.detachAppender(listAppender)
89+
1 * validator.checkConfigProvided(null, { it.profile == 'standard' && it.configFiles == [] })
90+
1 * validator.checkProfileProvided('standard', '', true)
16291
}
16392
}

0 commit comments

Comments
 (0)