'Testing querying a package'

@mock.patch('repoquery._run')
def test_querying_a_package(self, mock_cmd):

    params = {'state': 'list', 'name': 'bash', 'query_type': 'repos', 'verbose': False, 'show_duplicates': False, 'match_version': None, 'ignore_excluders': False}
    valid_stderr = 'Repo    rhel-7-server-extras-rpms    forced    skip_if_unavailable=True    due    to:    /etc/pki/entitlement/3268107132875399464-key.pem\n                                Repo    rhel-7-server-rpms    forced    skip_if_unavailable=True    due    to:    /etc/pki/entitlement/4128505182875899164-key.pem'
    mock_cmd.side_effect = [(0, '4.2.46|21.el7_3|x86_64|rhel-7-server-rpms|4.2.46-21.el7_3', valid_stderr)]
    results = Repoquery.run_ansible(params, False)
    self.assertEqual(results['state'], 'list')
    self.assertFalse(results['changed'])
    self.assertTrue(results['results']['package_found'])
    self.assertEqual(results['results']['returncode'], 0)
    self.assertEqual(results['results']['package_name'], 'bash')
    self.assertEqual(results['results']['versions'], {'latest_full': '4.2.46-21.el7_3', 'available_versions': ['4.2.46'], 'available_versions_full': ['4.2.46-21.el7_3'], 'latest': '4.2.46'})
    mock_cmd.assert_has_calls([mock.call(['/usr/bin/repoquery', '--plugins', '--quiet', '--pkgnarrow=repos', '--queryformat=%{version}|%{release}|%{arch}|%{repo}|%{version}-%{release}', 'bash'])])
