Skip to content

Commit 0bf1885

Browse files
committed
Remove getContainer helper method overload
1 parent 17293e6 commit 0bf1885

File tree

2 files changed

+67
-70
lines changed

2 files changed

+67
-70
lines changed

Sources/SPMTestSupport/MockDependencyResolver.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,6 @@ public extension PackageContainerConstraint {
6969
}
7070
}
7171

72-
public extension PackageContainerProvider {
73-
func getContainer(
74-
for identifier: PackageReference,
75-
completion: @escaping (Result<PackageContainer, Error>) -> Void
76-
) {
77-
getContainer(for: identifier, skipUpdate: false, completion: completion)
78-
}
79-
}
80-
8172
public enum MockLoadingError: Error {
8273
case unknownModule
8374
}

Tests/PackageGraphTests/RepositoryPackageContainerProviderTests.swift

Lines changed: 67 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66

77
See http://swift.org/LICENSE.txt for license information
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
9-
*/
9+
*/
1010

1111
import XCTest
1212

13-
import TSCBasic
14-
import TSCUtility
13+
import PackageGraph
1514
import PackageLoading
1615
import PackageModel
17-
import PackageGraph
1816
import SourceControl
17+
import TSCBasic
18+
import TSCUtility
1919

2020
import SPMTestSupport
2121

@@ -35,19 +35,19 @@ private class MockRepository: Repository {
3535
}
3636

3737
var specifier: RepositorySpecifier {
38-
return RepositorySpecifier(url: url)
38+
return RepositorySpecifier(url: self.url)
3939
}
4040

4141
var packageRef: PackageReference {
42-
return PackageReference(identity: url.lowercased(), path: url)
42+
return PackageReference(identity: self.url.lowercased(), path: self.url)
4343
}
4444

4545
var tags: [String] {
46-
return versions.keys.map{ String(describing: $0) }
46+
return self.versions.keys.map { String(describing: $0) }
4747
}
4848

4949
func resolveRevision(tag: String) throws -> Revision {
50-
assert(versions.index(forKey: Version(string: tag)!) != nil)
50+
assert(self.versions.index(forKey: Version(string: tag)!) != nil)
5151
return Revision(identifier: tag)
5252
}
5353

@@ -68,9 +68,9 @@ private class MockRepository: Repository {
6868
}
6969

7070
func openFileView(revision: Revision) throws -> FileSystem {
71-
assert(versions.index(forKey: Version(string: revision.identifier)!) != nil)
71+
assert(self.versions.index(forKey: Version(string: revision.identifier)!) != nil)
7272
// This is used for reading the tools version.
73-
return fs
73+
return self.fs
7474
}
7575
}
7676

@@ -98,15 +98,15 @@ private class MockRepositories: RepositoryProvider {
9898

9999
func fetch(repository: RepositorySpecifier, to path: AbsolutePath) throws {
100100
// No-op.
101-
assert(repositories.index(forKey: repository.url) != nil)
101+
assert(self.repositories.index(forKey: repository.url) != nil)
102102
}
103103

104104
func checkoutExists(at path: AbsolutePath) throws -> Bool {
105105
return false
106106
}
107107

108108
func open(repository: RepositorySpecifier, at path: AbsolutePath) throws -> Repository {
109-
return repositories[repository.url]!
109+
return self.repositories[repository.url]!
110110
}
111111

112112
func cloneCheckout(repository: RepositorySpecifier, at sourcePath: AbsolutePath, to destinationPath: AbsolutePath, editable: Bool) throws {
@@ -124,11 +124,10 @@ private class MockResolverDelegate: RepositoryManagerDelegate {
124124
var fetched = [RepositorySpecifier]()
125125

126126
func fetchingWillBegin(handle: RepositoryManager.RepositoryHandle) {
127-
fetched += [handle.repository]
127+
self.fetched += [handle.repository]
128128
}
129129

130-
func fetchingDidFinish(handle: RepositoryManager.RepositoryHandle, error: Swift.Error?) {
131-
}
130+
func fetchingDidFinish(handle: RepositoryManager.RepositoryHandle, error: Swift.Error?) {}
132131
}
133132

134133
// Some handy versions & ranges.
@@ -141,7 +140,6 @@ private let v2: Version = "2.0.0"
141140
private let v1Range: VersionSetSpecifier = .range("1.0.0" ..< "2.0.0")
142141

143142
class RepositoryPackageContainerProviderTests: XCTestCase {
144-
145143
func testPackageReference() {
146144
func assertIdentity(_ url: String, _ identity: String, file: StaticString = #file, line: UInt = #line) {
147145
let computedIdentity = PackageReference.computeIdentity(packageURL: url)
@@ -185,14 +183,16 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
185183
path: p,
186184
provider: inMemRepoProvider,
187185
delegate: MockResolverDelegate(),
188-
fileSystem: fs)
186+
fileSystem: fs
187+
)
189188

190189
let provider = RepositoryPackageContainerProvider(
191-
repositoryManager: repositoryManager,
192-
manifestLoader: MockManifestLoader(manifests: [:]))
190+
repositoryManager: repositoryManager,
191+
manifestLoader: MockManifestLoader(manifests: [:])
192+
)
193193
let ref = PackageReference(identity: "foo", path: repoPath.pathString)
194-
let container = try await { provider.getContainer(for: ref, completion: $0) }
195-
let v = container.versions(filter: { _ in true }).map{$0}
194+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
195+
let v = container.versions(filter: { _ in true }).map { $0 }
196196
XCTAssertEqual(v, ["2.0.3", "1.0.3", "1.0.2", "1.0.1", "1.0.0"])
197197
}
198198

@@ -232,46 +232,48 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
232232
path: p,
233233
provider: inMemRepoProvider,
234234
delegate: MockResolverDelegate(),
235-
fileSystem: fs)
235+
fileSystem: fs
236+
)
236237

237238
func createProvider(_ currentToolsVersion: ToolsVersion) -> RepositoryPackageContainerProvider {
238239
return RepositoryPackageContainerProvider(
239240
repositoryManager: repositoryManager,
240241
manifestLoader: MockManifestLoader(manifests: [:]),
241-
currentToolsVersion: currentToolsVersion)
242+
currentToolsVersion: currentToolsVersion
243+
)
242244
}
243245

244246
do {
245247
let provider = createProvider(ToolsVersion(version: "4.0.0"))
246248
let ref = PackageReference(identity: "foo", path: specifier.url)
247-
let container = try await { provider.getContainer(for: ref, completion: $0) }
248-
let v = container.versions(filter: { _ in true }).map{$0}
249+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
250+
let v = container.versions(filter: { _ in true }).map { $0 }
249251
XCTAssertEqual(v, ["1.0.1"])
250252
}
251253

252254
do {
253255
let provider = createProvider(ToolsVersion(version: "4.2.0"))
254256
let ref = PackageReference(identity: "foo", path: specifier.url)
255-
let container = try await { provider.getContainer(for: ref, completion: $0) }
257+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
256258
XCTAssertEqual((container as! RepositoryPackageContainer).validToolsVersionsCache, [:])
257-
let v = container.versions(filter: { _ in true }).map{$0}
259+
let v = container.versions(filter: { _ in true }).map { $0 }
258260
XCTAssertEqual((container as! RepositoryPackageContainer).validToolsVersionsCache, ["1.0.1": true, "1.0.0": false, "1.0.3": true, "1.0.2": true])
259261
XCTAssertEqual(v, ["1.0.3", "1.0.2", "1.0.1"])
260262
}
261263

262264
do {
263265
let provider = createProvider(ToolsVersion(version: "3.0.0"))
264266
let ref = PackageReference(identity: "foo", path: specifier.url)
265-
let container = try await { provider.getContainer(for: ref, completion: $0) }
266-
let v = container.versions(filter: { _ in true }).map{$0}
267+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
268+
let v = container.versions(filter: { _ in true }).map { $0 }
267269
XCTAssertEqual(v, [])
268270
}
269271

270272
// Test that getting dependencies on a revision that has unsupported tools version is diganosed properly.
271273
do {
272274
let provider = createProvider(ToolsVersion(version: "4.0.0"))
273275
let ref = PackageReference(identity: "foo", path: specifier.url)
274-
let container = try await { provider.getContainer(for: ref, completion: $0) } as! RepositoryPackageContainer
276+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) } as! RepositoryPackageContainer
275277
let revision = try container.getRevision(forTag: "1.0.0")
276278
do {
277279
_ = try container.getDependencies(at: revision.identifier, productFilter: .nothing)
@@ -310,14 +312,16 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
310312
path: p,
311313
provider: inMemRepoProvider,
312314
delegate: MockResolverDelegate(),
313-
fileSystem: fs)
315+
fileSystem: fs
316+
)
314317

315318
let provider = RepositoryPackageContainerProvider(
316319
repositoryManager: repositoryManager,
317-
manifestLoader: MockManifestLoader(manifests: [:]))
320+
manifestLoader: MockManifestLoader(manifests: [:])
321+
)
318322
let ref = PackageReference(identity: "foo", path: repoPath.pathString)
319-
let container = try await { provider.getContainer(for: ref, completion: $0) }
320-
let v = container.versions(filter: { _ in true }).map{$0}
323+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
324+
let v = container.versions(filter: { _ in true }).map { $0 }
321325
XCTAssertEqual(v, ["1.0.4-alpha", "1.0.2-dev.2", "1.0.2-dev", "1.0.1", "1.0.0", "1.0.0-beta.1", "1.0.0-alpha.1"])
322326
}
323327

@@ -348,14 +352,16 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
348352
path: p,
349353
provider: inMemRepoProvider,
350354
delegate: MockResolverDelegate(),
351-
fileSystem: fs)
355+
fileSystem: fs
356+
)
352357

353358
let provider = RepositoryPackageContainerProvider(
354359
repositoryManager: repositoryManager,
355-
manifestLoader: MockManifestLoader(manifests: [:]))
360+
manifestLoader: MockManifestLoader(manifests: [:])
361+
)
356362
let ref = PackageReference(identity: "foo", path: repoPath.pathString)
357-
let container = try await { provider.getContainer(for: ref, completion: $0) }
358-
let v = container.versions(filter: { _ in true }).map{$0}
363+
let container = try await { provider.getContainer(for: ref, skipUpdate: false, completion: $0) }
364+
let v = container.versions(filter: { _ in true }).map { $0 }
359365
XCTAssertEqual(v, ["2.0.1", "1.0.4", "1.0.2", "1.0.1", "1.0.0"])
360366
}
361367

@@ -372,7 +378,7 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
372378
]
373379

374380
let products = [
375-
ProductDescription(name: "Foo", type: .library(.automatic), targets: ["Foo1"])
381+
ProductDescription(name: "Foo", type: .library(.automatic), targets: ["Foo1"]),
376382
]
377383

378384
let targets = [
@@ -386,25 +392,27 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
386392
let v5ProductMapping: [String: ProductFilter] = [
387393
"Bar1": .specific(["Bar1", "Bar3"]),
388394
"Bar2": .specific(["B2", "Bar1", "Bar3"]),
389-
"Bar3": .specific(["Bar1", "Bar3"])
395+
"Bar3": .specific(["Bar1", "Bar3"]),
390396
]
391-
let v5Constraints = dependencies.map({
397+
let v5Constraints = dependencies.map {
392398
RepositoryPackageConstraint(
393399
container: $0.createPackageRef(mirrors: mirrors),
394400
requirement: $0.requirement.toConstraintRequirement(),
395-
products: v5ProductMapping[$0.name]!)
396-
})
401+
products: v5ProductMapping[$0.name]!
402+
)
403+
}
397404
let v5_2ProductMapping: [String: ProductFilter] = [
398405
"Bar1": .specific(["Bar1"]),
399406
"Bar2": .specific(["B2"]),
400-
"Bar3": .specific(["Bar3"])
407+
"Bar3": .specific(["Bar3"]),
401408
]
402-
let v5_2Constraints = dependencies.map({
409+
let v5_2Constraints = dependencies.map {
403410
RepositoryPackageConstraint(
404411
container: $0.createPackageRef(mirrors: mirrors),
405412
requirement: $0.requirement.toConstraintRequirement(),
406-
products: v5_2ProductMapping[$0.name]!)
407-
})
413+
products: v5_2ProductMapping[$0.name]!
414+
)
415+
}
408416

409417
do {
410418
let manifest = Manifest.createManifest(
@@ -492,7 +500,7 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
492500

493501
XCTAssertEqual(
494502
manifest
495-
.dependencyConstraints(productFilter: .specific(Set(products.map({ $0.name }))), mirrors: mirrors)
503+
.dependencyConstraints(productFilter: .specific(Set(products.map { $0.name })), mirrors: mirrors)
496504
.sorted(by: { $0.identifier.identity < $1.identifier.identity }),
497505
[
498506
v5_2Constraints[0],
@@ -501,56 +509,55 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
501509
)
502510
}
503511
}
504-
505-
512+
506513
func testMissingBranchDiagnostics() throws {
507514
try testWithTemporaryDirectory { tmpDir in
508515
// Create a repository.
509516
let packageDir = tmpDir.appending(component: "SomePackage")
510517
try localFileSystem.createDirectory(packageDir)
511518
initGitRepo(packageDir)
512519
let packageRepo = GitRepository(path: packageDir)
513-
520+
514521
// Create a package manifest in it (it only needs the `swift-tools-version` part, because we'll supply the manifest later).
515522
let manifestFile = packageDir.appending(component: "Package.swift")
516523
try localFileSystem.writeFileContents(manifestFile, bytes: ByteString("// swift-tools-version:4.2"))
517-
524+
518525
// Commit it and tag it.
519526
try packageRepo.stage(file: "Package.swift")
520527
try packageRepo.commit(message: "Initial")
521528
try packageRepo.tag(name: "1.0.0")
522-
529+
523530
// Rename the `master` branch to `main`.
524531
try systemQuietly([Git.tool, "-C", packageDir.pathString, "branch", "-m", "main"])
525532

526533
// Create a repository manager for it.
527534
let repoProvider = GitRepositoryProvider()
528535
let repositoryManager = RepositoryManager(path: packageDir, provider: repoProvider, delegate: nil, fileSystem: localFileSystem)
529-
536+
530537
// Create a container provider, configured with a mock manifest loader that will return the package manifest.
531538
let manifest = Manifest.createV4Manifest(
532539
name: packageDir.basename,
533540
path: packageDir.pathString,
534541
url: packageDir.pathString,
535542
packageKind: .root,
536543
targets: [
537-
TargetDescription(name: packageDir.basename, path: packageDir.pathString)
544+
TargetDescription(name: packageDir.basename, path: packageDir.pathString),
538545
]
539546
)
540-
let containerProvider = RepositoryPackageContainerProvider(repositoryManager: repositoryManager, manifestLoader: MockManifestLoader(manifests: [.init(url: packageDir.pathString, version: nil) : manifest]))
541-
547+
let containerProvider = RepositoryPackageContainerProvider(repositoryManager: repositoryManager, manifestLoader: MockManifestLoader(manifests: [.init(url: packageDir.pathString, version: nil): manifest]))
548+
542549
// Get a hold of the container for the test package.
543550
let packageRef = PackageReference(identity: "somepackage", path: packageDir.pathString)
544-
let container = try await { containerProvider.getContainer(for: packageRef, completion: $0) } as! RepositoryPackageContainer
545-
551+
let container = try await { containerProvider.getContainer(for: packageRef, skipUpdate: false, completion: $0) } as! RepositoryPackageContainer
552+
546553
// Simulate accessing a fictitious dependency on the `master` branch, and check that we get back the expected error.
547554
do { _ = try container.getDependencies(at: "master", productFilter: .everything) }
548555
catch let error as RepositoryPackageContainer.GetDependenciesError {
549556
// We expect to get an error message that mentions main.
550557
XCTAssertMatch(error.description, .and(.prefix("could not find a branch named ‘master’"), .suffix("(did you mean ‘main’?)")))
551558
XCTAssertMatch(error.diagnosticLocation?.description, .suffix("/SomePackage @ master"))
552559
}
553-
560+
554561
// Simulate accessing a fictitious dependency on some random commit that doesn't exist, and check that we get back the expected error.
555562
do { _ = try container.getDependencies(at: "535f4cb5b4a0872fa691473e82d7b27b9894df00", productFilter: .everything) }
556563
catch let error as RepositoryPackageContainer.GetDependenciesError {
@@ -560,5 +567,4 @@ class RepositoryPackageContainerProviderTests: XCTestCase {
560567
}
561568
}
562569
}
563-
564570
}

0 commit comments

Comments
 (0)