github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/cmd/containeragent/unit/package_test.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package unit_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/juju/collections/set"
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	coretesting "github.com/juju/juju/testing"
    14  )
    15  
    16  func TestPackage(t *testing.T) {
    17  	gc.TestingT(t)
    18  }
    19  
    20  type importSuite struct{}
    21  
    22  var _ = gc.Suite(&importSuite{})
    23  
    24  func (*importSuite) TestImports(c *gc.C) {
    25  	// TODO(sidecar) - improve test performance
    26  	c.Skip("test times out on Jenkins")
    27  	found := set.NewStrings(
    28  		coretesting.FindJujuCoreImports(c, "github.com/juju/juju/cmd/containeragent/unit")...)
    29  
    30  	expected := set.NewStrings(
    31  		"agent",
    32  		"agent/tools",
    33  		"api",
    34  		"api/agent/agent",
    35  		"api/authentication",
    36  		"api/base",
    37  		"api/client/block",
    38  		"api/agent/caasoperator",
    39  		"api/common",
    40  		"api/common/cloudspec",
    41  		"api/controller/controller",
    42  		"api/controller/instancepoller",
    43  		"api/agent/keyupdater",
    44  		"api/agent/leadership",
    45  		"api/agent/logger",
    46  		"api/logsender",
    47  		"api/agent/machiner",
    48  		"api/agent/migrationflag",
    49  		"api/agent/migrationminion",
    50  		"api/client/modelmanager",
    51  		"api/agent/proxyupdater",
    52  		"api/agent/reboot",
    53  		"api/agent/retrystrategy",
    54  		"api/agent/unitassigner",
    55  		"api/agent/uniter",
    56  		"api/agent/upgrader",
    57  		"api/client/usermanager",
    58  		"api/watcher",
    59  		"cmd/containeragent/utils",
    60  		"apiserver/errors",
    61  		"rpc/params",
    62  		"apiserver/apiserverhttp",
    63  		"caas",
    64  		"caas/kubernetes/clientconfig",
    65  		"caas/kubernetes/provider",
    66  		"caas/kubernetes/provider/application",
    67  		"caas/kubernetes/provider/constants",
    68  		"caas/kubernetes/provider/proxy",
    69  		"caas/kubernetes/provider/resources",
    70  		"caas/kubernetes/provider/specs",
    71  		"caas/kubernetes/provider/storage",
    72  		"caas/kubernetes/provider/utils",
    73  		"caas/kubernetes/provider/watcher",
    74  		"caas/specs",
    75  		"charmhub",
    76  		"charmhub/path",
    77  		"charmhub/transport",
    78  		"charmstore",
    79  		"cloud",
    80  		"cloudconfig",
    81  		"cloudconfig/cloudinit",
    82  		"cloudconfig/instancecfg",
    83  		"cloudconfig/podcfg",
    84  		"cmd",
    85  		"cmd/juju/common",
    86  		"cmd/juju/interact",
    87  		"cmd/jujud/agent/addons",
    88  		"cmd/jujud/agent/agentconf",
    89  		"cmd/jujud/agent/config",
    90  		"cmd/jujud/agent/engine",
    91  		"cmd/jujud/agent/errors",
    92  		"cmd/modelcmd",
    93  		"cmd/output",
    94  		"controller",
    95  		"core/actions",
    96  		"core/annotations",
    97  		"core/application",
    98  		"core/base",
    99  		"core/constraints",
   100  		"core/devices",
   101  		"core/globalclock",
   102  		"core/instance",
   103  		"core/leadership",
   104  		"core/lease",
   105  		"core/life",
   106  		"core/lxdprofile",
   107  		"core/machinelock",
   108  		"core/migration",
   109  		"core/model",
   110  		"core/network",
   111  		"core/network/firewall",
   112  		"core/paths",
   113  		"core/paths/transientfile",
   114  		"core/permission",
   115  		"core/presence",
   116  		"core/quota",
   117  		"core/raftlease",
   118  		"core/relation",
   119  		"core/resources",
   120  		"core/secrets",
   121  		"core/snap",
   122  		"core/status",
   123  		"core/watcher",
   124  		"downloader",
   125  		"environs",
   126  		"environs/bootstrap",
   127  		"environs/cloudspec",
   128  		"environs/config",
   129  		"environs/context",
   130  		"environs/filestorage",
   131  		"environs/dashboard",
   132  		"environs/imagemetadata",
   133  		"environs/instances",
   134  		"environs/simplestreams",
   135  		"environs/storage",
   136  		"environs/sync",
   137  		"environs/tags",
   138  		"environs/tools",
   139  		"environs/utils",
   140  		"feature",
   141  		"juju",
   142  		"juju/keys",
   143  		"juju/names",
   144  		"juju/osenv",
   145  		"juju/sockets",
   146  		"jujuclient",
   147  		"logfwd",
   148  		"logfwd/syslog",
   149  		"mongo", // TODO: move mongo dependency from JUJU CLI if we decide to split the `agent.Config` for controller and machineagent/unitagent/containeragent.
   150  		"network",
   151  		"network/debinterfaces",
   152  		"network/netplan",
   153  		"packaging",
   154  		"packaging/dependency",
   155  		"pki",
   156  		"pki/tls",
   157  		"proxy",
   158  		"provider/lxd/lxdnames",
   159  		"pubsub/agent",
   160  		"rpc",
   161  		"rpc/jsoncodec",
   162  		"service",
   163  		"service/common",
   164  		"service/snap",
   165  		"service/systemd",
   166  		"state/errors",
   167  		"storage",
   168  		"storage/provider",
   169  		"tools",
   170  		"utils/proxy",
   171  		"utils/scriptrunner",
   172  		"version",
   173  		"worker",
   174  		"worker/agent",
   175  		"worker/apiaddressupdater",
   176  		"worker/apicaller",
   177  		"worker/apiconfigwatcher",
   178  		"worker/caasprober",
   179  		"worker/common/charmrunner",
   180  		"worker/common/reboot",
   181  		"worker/fortress",
   182  		"worker/introspection",
   183  		"worker/introspection/pprof",
   184  		"worker/leadership",
   185  		"worker/logger",
   186  		"worker/logsender",
   187  		"worker/migrationflag",
   188  		"worker/migrationminion",
   189  		"worker/muxhttpserver",
   190  		"worker/proxyupdater",
   191  		"worker/retrystrategy",
   192  		"worker/uniter",
   193  		"worker/uniter/actions",
   194  		"worker/uniter/charm",
   195  		"worker/uniter/container",
   196  		"worker/uniter/hook",
   197  		"worker/uniter/leadership",
   198  		"worker/uniter/operation",
   199  		"worker/uniter/reboot",
   200  		"worker/uniter/relation",
   201  		"worker/uniter/remotestate",
   202  		"worker/uniter/resolver",
   203  		"worker/uniter/runcommands",
   204  		"worker/uniter/runner",
   205  		"worker/uniter/runner/context",
   206  		"worker/uniter/runner/debug",
   207  		"worker/uniter/runner/jujuc",
   208  		"worker/uniter/storage",
   209  		"worker/uniter/upgradeseries",
   210  		"worker/uniter/verifycharmprofile",
   211  		"wrench",
   212  	)
   213  
   214  	unexpected := found.Difference(expected)
   215  	// TODO: review if there are any un-expected imports!
   216  	// Show the values rather than just checking the length so a failing
   217  	// test shows them.
   218  	c.Check(unexpected.SortedValues(), jc.DeepEquals, []string{})
   219  	// If unneeded show any values this is good as we've reduced
   220  	// dependencies, and they should be removed from expected above.
   221  	unneeded := expected.Difference(found)
   222  	c.Check(unneeded.SortedValues(), jc.DeepEquals, []string{})
   223  }