'Test the Interrogate flow.'

def testInterrogateLinuxWithWtmp(self):

    fixture_test_lib.ClientFixture(self.client_id, token=self.token)
    self.SetupClients(1, system='Linux', os_version='12.04')
    with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.OS, vfs_test_lib.FakeTestDataVFSHandler):
        with test_lib.ConfigOverrider({'Artifacts.knowledge_base': ['LinuxWtmp', 'NetgroupConfiguration', 'LinuxRelease'], 'Artifacts.interrogate_store_in_aff4': [], 'Artifacts.netgroup_filter_regexes': ['^login$']}):
            client_mock = action_mocks.InterrogatedClient()
            client_mock.InitializeClient()
            for _ in flow_test_lib.TestFlowHelper(discovery.Interrogate.__name__, client_mock, token=self.token, client_id=self.client_id):
                pass
            self.fd = aff4.FACTORY.Open(self.client_id, token=self.token)
            self._CheckAFF4Object('test_node', 'Linux', (100 * 1000000))
            self._CheckClientInfo()
            self._CheckGRRConfig()
            self._CheckNotificationsCreated()
            self._CheckClientSummary('Linux', '14.4', release='Ubuntu', kernel='3.13.0-39-generic')
            self._CheckRelease('Ubuntu', '14.4')
            self._CheckUsers(['yagharek', 'isaac', 'user1', 'user2', 'user3'])
            self._CheckNetworkInfo()
            self._CheckVFS()
            self._CheckLabelIndex()
            self._CheckClientKwIndex(['Linux'], 1)
            self._CheckClientKwIndex(['Label2'], 1)
            self._CheckClientLibraries()
            self._CheckMemory()
