Skip to content

Commit 1d02944

Browse files
author
Katrina Owen
authored
Merge pull request #827 from Smarticles101/workspace-teams
Add teams support to workspace.PotentialExercises
2 parents b23670e + 61382df commit 1d02944

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

workspace/workspace.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,28 @@ func (ws Workspace) PotentialExercises() ([]Exercise, error) {
5757
continue
5858
}
5959

60+
if topInfo.Name() == "teams" {
61+
subInfos, err := ioutil.ReadDir(filepath.Join(ws.Dir, "teams"))
62+
if err != nil {
63+
return nil, err
64+
}
65+
66+
for _, subInfo := range subInfos {
67+
teamWs, err := New(filepath.Join(ws.Dir, "teams", subInfo.Name()))
68+
if err != nil {
69+
return nil, err
70+
}
71+
72+
teamExercises, err := teamWs.PotentialExercises()
73+
if err != nil {
74+
return nil, err
75+
}
76+
77+
exercises = append(exercises, teamExercises...)
78+
}
79+
continue
80+
}
81+
6082
subInfos, err := ioutil.ReadDir(filepath.Join(ws.Dir, topInfo.Name()))
6183
if err != nil {
6284
return nil, err

workspace/workspace_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ func TestWorkspacePotentialExercises(t *testing.T) {
2020
b1 := filepath.Join(tmpDir, "track-b", "exercise-one")
2121
b2 := filepath.Join(tmpDir, "track-b", "exercise-two")
2222

23+
// It should find teams exercises
24+
team := filepath.Join(tmpDir, "teams", "some-team", "track-c", "exercise-one")
25+
2326
// It should ignore other people's exercises.
2427
alice := filepath.Join(tmpDir, "users", "alice", "track-a", "exercise-one")
2528

2629
// It should ignore nested dirs within exercises.
2730
nested := filepath.Join(a1, "subdir", "deeper-dir", "another-deep-dir")
2831

29-
for _, path := range []string{a1, b1, b2, alice, nested} {
32+
for _, path := range []string{a1, b1, b2, team, alice, nested} {
3033
err := os.MkdirAll(path, os.FileMode(0755))
3134
assert.NoError(t, err)
3235
}
@@ -36,7 +39,7 @@ func TestWorkspacePotentialExercises(t *testing.T) {
3639

3740
exercises, err := ws.PotentialExercises()
3841
assert.NoError(t, err)
39-
if assert.Equal(t, 3, len(exercises)) {
42+
if assert.Equal(t, 4, len(exercises)) {
4043
paths := make([]string, len(exercises))
4144
for i, e := range exercises {
4245
paths[i] = e.Path()
@@ -46,6 +49,7 @@ func TestWorkspacePotentialExercises(t *testing.T) {
4649
assert.Equal(t, paths[0], "track-a/exercise-one")
4750
assert.Equal(t, paths[1], "track-b/exercise-one")
4851
assert.Equal(t, paths[2], "track-b/exercise-two")
52+
assert.Equal(t, paths[3], "track-c/exercise-one")
4953
}
5054
}
5155

0 commit comments

Comments
 (0)