@@ -1653,3 +1653,69 @@ func TestValidateWebhook(t *testing.T) {
16531653 require .NoError (t , err )
16541654 assert .True (t , isValid )
16551655}
1656+
1657+ func TestGetDeployment (t * testing.T ) {
1658+ mockServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
1659+ assert .Equal (t , "/deployments/acme/image-upscaler" , r .URL .Path )
1660+ assert .Equal (t , http .MethodGet , r .Method )
1661+
1662+ deployment := & replicate.Deployment {
1663+ Owner : "acme" ,
1664+ Name : "image-upscaler" ,
1665+ CurrentRelease : replicate.DeploymentRelease {
1666+ Number : 1 ,
1667+ Model : "acme/esrgan" ,
1668+ Version : "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa" ,
1669+ CreatedAt : "2022-01-01T00:00:00Z" ,
1670+ CreatedBy : replicate.Account {
1671+ Type : "organization" ,
1672+ Username : "acme" ,
1673+ Name : "Acme, Inc." ,
1674+ },
1675+ Configuration : replicate.DeploymentConfiguration {
1676+ Hardware : "gpu-t4" ,
1677+ MinInstances : 1 ,
1678+ MaxInstances : 5 ,
1679+ },
1680+ },
1681+ }
1682+
1683+ responseBytes , err := json .Marshal (deployment )
1684+ if err != nil {
1685+ t .Fatal (err )
1686+ }
1687+
1688+ w .WriteHeader (http .StatusOK )
1689+ w .Write (responseBytes )
1690+ }))
1691+ defer mockServer .Close ()
1692+
1693+ client , err := replicate .NewClient (
1694+ replicate .WithToken ("test-token" ),
1695+ replicate .WithBaseURL (mockServer .URL ),
1696+ )
1697+ require .NotNil (t , client )
1698+ require .NoError (t , err )
1699+
1700+ ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
1701+ defer cancel ()
1702+
1703+ deployment , err := client .GetDeployment (ctx , "acme" , "image-upscaler" )
1704+ if err != nil {
1705+ t .Fatal (err )
1706+ }
1707+
1708+ assert .NotNil (t , deployment )
1709+ assert .Equal (t , "acme" , deployment .Owner )
1710+ assert .Equal (t , "image-upscaler" , deployment .Name )
1711+ assert .Equal (t , 1 , deployment .CurrentRelease .Number )
1712+ assert .Equal (t , "acme/esrgan" , deployment .CurrentRelease .Model )
1713+ assert .Equal (t , "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa" , deployment .CurrentRelease .Version )
1714+ assert .Equal (t , "2022-01-01T00:00:00Z" , deployment .CurrentRelease .CreatedAt )
1715+ assert .Equal (t , "organization" , deployment .CurrentRelease .CreatedBy .Type )
1716+ assert .Equal (t , "acme" , deployment .CurrentRelease .CreatedBy .Username )
1717+ assert .Equal (t , "Acme, Inc." , deployment .CurrentRelease .CreatedBy .Name )
1718+ assert .Equal (t , "gpu-t4" , deployment .CurrentRelease .Configuration .Hardware )
1719+ assert .Equal (t , 1 , deployment .CurrentRelease .Configuration .MinInstances )
1720+ assert .Equal (t , 5 , deployment .CurrentRelease .Configuration .MaxInstances )
1721+ }
0 commit comments