Skip to content

Commit 7383e91

Browse files
fix: when using --qa-enable and --qa-disable the answers to disabled questions were not being added to the generated config file (#1163)
Signed-off-by: Harikrishnan Balagopal <[email protected]>
1 parent d049f65 commit 7383e91

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

qaengine/engine.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,25 @@ func FetchAnswer(prob qatypes.Problem) (qatypes.Problem, error) {
140140
logrus.Debugf("Problem already solved.")
141141
return prob, nil
142142
}
143-
if isQuestionDisabled(prob) {
144-
return defaultEngine.FetchAnswer(prob)
145-
}
146143
var err error
147144
logrus.Debug("looping through the engines to try and fetch the answer")
145+
isDisabled := isQuestionDisabled(prob)
148146
for _, engine := range engines {
149147
logrus.Debugf("engine '%T'", engine)
150148
if prob.Desc == "" && engine.IsInteractiveEngine() {
151149
return defaultEngine.FetchAnswer(prob)
152150
}
151+
if isDisabled && engine.IsInteractiveEngine() {
152+
logrus.Debugf("The question belongs to a disabled category so we won't ask the user for the answer")
153+
prob, err = defaultEngine.FetchAnswer(prob)
154+
if err != nil {
155+
return prob, err
156+
}
157+
if prob.Answer != nil {
158+
prob = changeSelectToInputForOther(prob)
159+
}
160+
break
161+
}
153162
prob, err = engine.FetchAnswer(prob)
154163
if err != nil {
155164
if _, ok := err.(*qatypes.ValidationError); ok {
@@ -175,6 +184,13 @@ func FetchAnswer(prob qatypes.Problem) (qatypes.Problem, error) {
175184
logrus.Debug("there is no interactive engine")
176185
return prob, fmt.Errorf("failed to fetch the answer for problem: %+v . Error: %w", prob, err)
177186
}
187+
if isDisabled {
188+
logrus.Debugf("the question is from a disabled category so try with default engine")
189+
prob, err = defaultEngine.FetchAnswer(prob)
190+
if err != nil || prob.Answer == nil {
191+
return prob, fmt.Errorf("failed to fetch the answer for problem: %+v . Error: %w", prob, err)
192+
}
193+
}
178194
for err != nil || prob.Answer == nil {
179195
prob, err = lastEngine.FetchAnswer(prob)
180196
if err != nil {

0 commit comments

Comments
 (0)