@@ -1363,15 +1363,21 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmNotImporting(c *gc.C
1363
1363
Provenance : charm .ProvenanceUpload ,
1364
1364
}
1365
1365
1366
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1367
- ObjectStoreUUID : objectStoreUUID ,
1368
- UniqueName : "unique-name" ,
1369
- ArchivePath : path ,
1370
- }, store.Digest {
1371
- SHA256 : "sha-256" ,
1372
- SHA384 : "sha-384" ,
1373
- Size : stat .Size (),
1374
- }, nil )
1366
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).
1367
+ DoAndReturn (func (ctx context.Context , r io.Reader , s string ) (store.StoreFromReaderResult , store.Digest , error ) {
1368
+ // Force the reader, so we populate the buffer.
1369
+ _ , err := io .Copy (io .Discard , r )
1370
+ c .Assert (err , jc .ErrorIsNil )
1371
+
1372
+ return store.StoreFromReaderResult {
1373
+ ObjectStoreUUID : objectStoreUUID ,
1374
+ UniqueName : "unique-name" ,
1375
+ }, store.Digest {
1376
+ SHA256 : "sha-256" ,
1377
+ SHA384 : "sha-384" ,
1378
+ Size : stat .Size (),
1379
+ }, nil
1380
+ })
1375
1381
s .state .EXPECT ().SetCharm (gomock .Any (), gomock .Any (), downloadInfo ).DoAndReturn (func (_ context.Context , ch charm.Charm , _ * charm.DownloadInfo ) (corecharm.ID , charm.CharmLocator , error ) {
1376
1382
c .Check (ch .Metadata .Name , gc .Equals , "dummy" )
1377
1383
return charmID , charm.CharmLocator {
@@ -1404,10 +1410,9 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmNotImportingFailedRe
1404
1410
1405
1411
objectStoreUUID := objectstoretesting .GenObjectStoreUUID (c )
1406
1412
1407
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1413
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreFromReaderResult {
1408
1414
ObjectStoreUUID : objectStoreUUID ,
1409
1415
UniqueName : "unique-name" ,
1410
- ArchivePath : "/tmp/foo" ,
1411
1416
}, store.Digest {
1412
1417
SHA256 : "sha-256" ,
1413
1418
SHA384 : "sha-384" ,
@@ -1442,15 +1447,21 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmNotImportingFailedSe
1442
1447
Provenance : charm .ProvenanceUpload ,
1443
1448
}
1444
1449
1445
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1446
- ObjectStoreUUID : objectStoreUUID ,
1447
- UniqueName : "unique-name" ,
1448
- ArchivePath : path ,
1449
- }, store.Digest {
1450
- SHA256 : "sha-256" ,
1451
- SHA384 : "sha-384" ,
1452
- Size : stat .Size (),
1453
- }, nil )
1450
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).
1451
+ DoAndReturn (func (ctx context.Context , r io.Reader , s string ) (store.StoreFromReaderResult , store.Digest , error ) {
1452
+ // Force the reader, so we populate the buffer.
1453
+ _ , err := io .Copy (io .Discard , r )
1454
+ c .Assert (err , jc .ErrorIsNil )
1455
+
1456
+ return store.StoreFromReaderResult {
1457
+ ObjectStoreUUID : objectStoreUUID ,
1458
+ UniqueName : "unique-name" ,
1459
+ }, store.Digest {
1460
+ SHA256 : "sha-256" ,
1461
+ SHA384 : "sha-384" ,
1462
+ Size : stat .Size (),
1463
+ }, nil
1464
+ })
1454
1465
s .state .EXPECT ().SetCharm (gomock .Any (), gomock .Any (), downloadInfo ).DoAndReturn (func (_ context.Context , _ charm.Charm , _ * charm.DownloadInfo ) (corecharm.ID , charm.CharmLocator , error ) {
1455
1466
return charmID , charm.CharmLocator {}, errors .NotValidf ("failed to set charm" )
1456
1467
})
@@ -1487,15 +1498,21 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmImporting(c *gc.C) {
1487
1498
}
1488
1499
1489
1500
s .state .EXPECT ().GetCharmID (gomock .Any (), "test" , 1 , charm .LocalSource ).Return (charmID , nil )
1490
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1491
- ObjectStoreUUID : objectStoreUUID ,
1492
- UniqueName : "unique-name" ,
1493
- ArchivePath : path ,
1494
- }, store.Digest {
1495
- SHA256 : "sha-256" ,
1496
- SHA384 : "sha-384" ,
1497
- Size : stat .Size (),
1498
- }, nil )
1501
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).
1502
+ DoAndReturn (func (ctx context.Context , r io.Reader , s string ) (store.StoreFromReaderResult , store.Digest , error ) {
1503
+ // Force the reader, so we populate the buffer.
1504
+ _ , err := io .Copy (io .Discard , r )
1505
+ c .Assert (err , jc .ErrorIsNil )
1506
+
1507
+ return store.StoreFromReaderResult {
1508
+ ObjectStoreUUID : objectStoreUUID ,
1509
+ UniqueName : "unique-name" ,
1510
+ }, store.Digest {
1511
+ SHA256 : "sha-256" ,
1512
+ SHA384 : "sha-384" ,
1513
+ Size : stat .Size (),
1514
+ }, nil
1515
+ })
1499
1516
s .state .EXPECT ().ResolveMigratingUploadedCharm (gomock .Any (), charmID , charm.ResolvedMigratingUploadedCharm {
1500
1517
ObjectStoreUUID : objectStoreUUID ,
1501
1518
Hash : "sha-256" ,
@@ -1564,10 +1581,9 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmImportingFailedStore
1564
1581
objectStoreUUID := objectstoretesting .GenObjectStoreUUID (c )
1565
1582
1566
1583
s .state .EXPECT ().GetCharmID (gomock .Any (), "test" , 1 , charm .LocalSource ).Return (charmID , nil )
1567
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1584
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreFromReaderResult {
1568
1585
ObjectStoreUUID : objectStoreUUID ,
1569
1586
UniqueName : "unique-name" ,
1570
- ArchivePath : path ,
1571
1587
}, store.Digest {
1572
1588
SHA256 : "sha-256" ,
1573
1589
SHA384 : "sha-384" ,
@@ -1604,15 +1620,21 @@ func (s *charmServiceSuite) TestResolveUploadCharmLocalCharmImportingFailedResol
1604
1620
}
1605
1621
1606
1622
s .state .EXPECT ().GetCharmID (gomock .Any (), "test" , 1 , charm .LocalSource ).Return (charmID , nil )
1607
- s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).Return (store.StoreResult {
1608
- ObjectStoreUUID : objectStoreUUID ,
1609
- UniqueName : "unique-name" ,
1610
- ArchivePath : path ,
1611
- }, store.Digest {
1612
- SHA256 : "sha-256" ,
1613
- SHA384 : "sha-384" ,
1614
- Size : stat .Size (),
1615
- }, nil )
1623
+ s .charmStore .EXPECT ().StoreFromReader (gomock .Any (), gomock .Not (gomock .Nil ()), "abc" ).
1624
+ DoAndReturn (func (ctx context.Context , r io.Reader , s string ) (store.StoreFromReaderResult , store.Digest , error ) {
1625
+ // Force the reader, so we populate the buffer.
1626
+ _ , err := io .Copy (io .Discard , r )
1627
+ c .Assert (err , jc .ErrorIsNil )
1628
+
1629
+ return store.StoreFromReaderResult {
1630
+ ObjectStoreUUID : objectStoreUUID ,
1631
+ UniqueName : "unique-name" ,
1632
+ }, store.Digest {
1633
+ SHA256 : "sha-256" ,
1634
+ SHA384 : "sha-384" ,
1635
+ Size : stat .Size (),
1636
+ }, nil
1637
+ })
1616
1638
s .state .EXPECT ().ResolveMigratingUploadedCharm (gomock .Any (), charmID , charm.ResolvedMigratingUploadedCharm {
1617
1639
ObjectStoreUUID : objectStoreUUID ,
1618
1640
Hash : "sha-256" ,
0 commit comments