Skip to content

Commit 60571c0

Browse files
committed
Disable "empty repository" Git test
This is required because the test fails with Git >=v2.41.0 due to changes to commands used by the Git test server. Causing the server to return an error when cloning an empty repository, instead of yielding an empty object. Signed-off-by: Hidde Beydals <hidde@hhh.computer>
1 parent 2f4b200 commit 60571c0

File tree

1 file changed

+56
-51
lines changed

1 file changed

+56
-51
lines changed

internal/controller/gitrepository_controller_test.go

Lines changed: 56 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -219,57 +219,62 @@ func TestGitRepositoryReconciler_Reconcile(t *testing.T) {
219219
testSuspendedObjectDeleteWithArtifact(ctx, g, obj)
220220
}
221221

222-
func TestGitRepositoryReconciler_reconcileSource_emptyRepository(t *testing.T) {
223-
g := NewWithT(t)
224-
225-
server, err := gittestserver.NewTempGitServer()
226-
g.Expect(err).NotTo(HaveOccurred())
227-
defer os.RemoveAll(server.Root())
228-
server.AutoCreate()
229-
g.Expect(server.StartHTTP()).To(Succeed())
230-
defer server.StopHTTP()
231-
232-
obj := &sourcev1.GitRepository{
233-
ObjectMeta: metav1.ObjectMeta{
234-
GenerateName: "empty-",
235-
Generation: 1,
236-
},
237-
Spec: sourcev1.GitRepositorySpec{
238-
Interval: metav1.Duration{Duration: interval},
239-
Timeout: &metav1.Duration{Duration: timeout},
240-
URL: server.HTTPAddress() + "/test.git",
241-
},
242-
}
243-
244-
clientBuilder := fakeclient.NewClientBuilder().
245-
WithScheme(testEnv.GetScheme()).
246-
WithStatusSubresource(&sourcev1.GitRepository{})
247-
248-
r := &GitRepositoryReconciler{
249-
Client: clientBuilder.Build(),
250-
EventRecorder: record.NewFakeRecorder(32),
251-
Storage: testStorage,
252-
patchOptions: getPatchOptions(gitRepositoryReadyCondition.Owned, "sc"),
253-
}
254-
255-
g.Expect(r.Client.Create(context.TODO(), obj)).ToNot(HaveOccurred())
256-
defer func() {
257-
g.Expect(r.Client.Delete(context.TODO(), obj)).ToNot(HaveOccurred())
258-
}()
259-
260-
var commit git.Commit
261-
var includes artifactSet
262-
sp := patch.NewSerialPatcher(obj, r.Client)
263-
264-
got, err := r.reconcileSource(context.TODO(), sp, obj, &commit, &includes, t.TempDir())
265-
assertConditions := []metav1.Condition{
266-
*conditions.TrueCondition(sourcev1.FetchFailedCondition, "EmptyGitRepository", "git repository is empty"),
267-
}
268-
g.Expect(obj.Status.Conditions).To(conditions.MatchConditions(assertConditions))
269-
g.Expect(err).To(HaveOccurred())
270-
g.Expect(got).To(Equal(sreconcile.ResultEmpty))
271-
g.Expect(commit).ToNot(BeNil())
272-
}
222+
// TODO(hidde): Re-enable this test.
223+
// It is currently disabled because it fails on machines with Git version
224+
// >=v2.41.0 due to changes to commands used by the test server. Causing
225+
// the test server to return an error when cloning an empty repository,
226+
// instead of yielding an empty object.
227+
//func TestGitRepositoryReconciler_reconcileSource_emptyRepository(t *testing.T) {
228+
// g := NewWithT(t)
229+
//
230+
// server, err := gittestserver.NewTempGitServer()
231+
// g.Expect(err).NotTo(HaveOccurred())
232+
// defer os.RemoveAll(server.Root())
233+
// server.AutoCreate()
234+
// g.Expect(server.StartHTTP()).To(Succeed())
235+
// defer server.StopHTTP()
236+
//
237+
// obj := &sourcev1.GitRepository{
238+
// ObjectMeta: metav1.ObjectMeta{
239+
// GenerateName: "empty-",
240+
// Generation: 1,
241+
// },
242+
// Spec: sourcev1.GitRepositorySpec{
243+
// Interval: metav1.Duration{Duration: interval},
244+
// Timeout: &metav1.Duration{Duration: timeout},
245+
// URL: server.HTTPAddress() + "/test.git",
246+
// },
247+
// }
248+
//
249+
// clientBuilder := fakeclient.NewClientBuilder().
250+
// WithScheme(testEnv.GetScheme()).
251+
// WithStatusSubresource(&sourcev1.GitRepository{})
252+
//
253+
// r := &GitRepositoryReconciler{
254+
// Client: clientBuilder.Build(),
255+
// EventRecorder: record.NewFakeRecorder(32),
256+
// Storage: testStorage,
257+
// patchOptions: getPatchOptions(gitRepositoryReadyCondition.Owned, "sc"),
258+
// }
259+
//
260+
// g.Expect(r.Client.Create(context.TODO(), obj)).ToNot(HaveOccurred())
261+
// defer func() {
262+
// g.Expect(r.Client.Delete(context.TODO(), obj)).ToNot(HaveOccurred())
263+
// }()
264+
//
265+
// var commit git.Commit
266+
// var includes artifactSet
267+
// sp := patch.NewSerialPatcher(obj, r.Client)
268+
//
269+
// got, err := r.reconcileSource(context.TODO(), sp, obj, &commit, &includes, t.TempDir())
270+
// assertConditions := []metav1.Condition{
271+
// *conditions.TrueCondition(sourcev1.FetchFailedCondition, "EmptyGitRepository", "git repository is empty"),
272+
// }
273+
// g.Expect(obj.Status.Conditions).To(conditions.MatchConditions(assertConditions))
274+
// g.Expect(err).To(HaveOccurred())
275+
// g.Expect(got).To(Equal(sreconcile.ResultEmpty))
276+
// g.Expect(commit).ToNot(BeNil())
277+
//}
273278

274279
func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
275280
type options struct {

0 commit comments

Comments
 (0)