Namespacing modules in Phoenix projects

I’m rebuilding an app to use Phoenix 1.3, one of the changes is moving the web directory into lib, I like this one a lot for a few reasons, among others (at least in my head) it got us a “real” directory to module structure mapping.

Now I got to refactoring tests and have to add the Web namespace to modules that are not in a web directory, like test/support/conn_case.ex.

I get the reasoning - conn and channel belong to web whereas data does not (test/support/data_case.ex is now MyApp.DataCase without Web), but this feels somewhat arbitrary.

For me the most obvious way to name things would be to have a Test.Support.ConnCase, Test.Support.DataCase etc.

It’s not only tests, under the web dir we “lose” all sub-directories (views, controllers etc). I know I can just do what I want, but I also want to stay as “idiomatic” as possible, so does anyone have insights as to why we have this occasional namespace / directory structure mapping and not a constant one?