コード例 #1
0
def test_csv_export(webapp, monkeypatch):
    """Test CSV export"""
    monkeypatch.setattr('dnstwister.tools.resolve', lambda domain:
                        ('999.999.999.999', False))

    domain = Domain('a.com')
    hexdomain = domain.to_hex()

    response = webapp.get('/search/{}/csv'.format(hexdomain))

    assert response.headers[
        'Content-Disposition'] == 'attachment; filename=dnstwister_report_a.com.csv'

    assert '\n'.join(sorted(
        response.text.strip().split('\n'))) == textwrap.dedent("""
        Domain,Type,Tweak,IP,Error
        a.com,Addition,aa.com,999.999.999.999,False
        a.com,Addition,ab.com,999.999.999.999,False
        a.com,Addition,ac.com,999.999.999.999,False
        a.com,Addition,ad.com,999.999.999.999,False
        a.com,Addition,ae.com,999.999.999.999,False
        a.com,Addition,af.com,999.999.999.999,False
        a.com,Addition,ag.com,999.999.999.999,False
        a.com,Addition,ah.com,999.999.999.999,False
        a.com,Addition,ai.com,999.999.999.999,False
        a.com,Addition,aj.com,999.999.999.999,False
        a.com,Addition,ak.com,999.999.999.999,False
        a.com,Addition,al.com,999.999.999.999,False
        a.com,Addition,am.com,999.999.999.999,False
        a.com,Addition,an.com,999.999.999.999,False
        a.com,Addition,ao.com,999.999.999.999,False
        a.com,Addition,ap.com,999.999.999.999,False
        a.com,Addition,aq.com,999.999.999.999,False
        a.com,Addition,ar.com,999.999.999.999,False
        a.com,Addition,as.com,999.999.999.999,False
        a.com,Addition,at.com,999.999.999.999,False
        a.com,Addition,au.com,999.999.999.999,False
        a.com,Addition,av.com,999.999.999.999,False
        a.com,Addition,aw.com,999.999.999.999,False
        a.com,Addition,ax.com,999.999.999.999,False
        a.com,Addition,ay.com,999.999.999.999,False
        a.com,Addition,az.com,999.999.999.999,False
        a.com,Bitsquatting,c.com,999.999.999.999,False
        a.com,Bitsquatting,e.com,999.999.999.999,False
        a.com,Bitsquatting,i.com,999.999.999.999,False
        a.com,Bitsquatting,q.com,999.999.999.999,False
        a.com,Original*,a.com,999.999.999.999,False
        a.com,Replacement,1.com,999.999.999.999,False
        a.com,Replacement,2.com,999.999.999.999,False
        a.com,Replacement,s.com,999.999.999.999,False
        a.com,Replacement,w.com,999.999.999.999,False
        a.com,Replacement,y.com,999.999.999.999,False
        a.com,Replacement,z.com,999.999.999.999,False
        a.com,Various,acom.com,999.999.999.999,False
        a.com,Various,wwa.com,999.999.999.999,False
        a.com,Various,www-a.com,999.999.999.999,False
        a.com,Various,wwwa.com,999.999.999.999,False
        a.com,Vowel swap,o.com,999.999.999.999,False
        a.com,Vowel swap,u.com,999.999.999.999,False
    """).strip()
コード例 #2
0
def test_links_on_report(webapp):
    """Make sure the export links are working."""
    domain = Domain('a.com')
    hexdomain = domain.to_hex()
    page_html = webapp.get('/search/{}'.format(hexdomain)).text

    assert '/search/{}/csv'.format(hexdomain) in page_html
    assert '/search/{}/json'.format(hexdomain) in page_html
コード例 #3
0
ファイル: test_api.py プロジェクト: thisismyrobot/dnstwister
def test_unicode_basics(webapp):
    """Test that Unicode domains work on all endpoints."""
    unicode_domain = Domain('xn--sterreich-z7a.icom.museum')
    endpoints = ('fuzz', 'ip', 'parked', 'safebrowsing', 'whois')
    for endpoint in endpoints:
        webapp.get('/api/{}/{}'.format(
            endpoint,
            unicode_domain.to_hex(),
        ))
    webapp.get('/api/to_hex/{}'.format(unicode_domain.to_ascii()))
コード例 #4
0
def test_json_export(webapp, monkeypatch):
    """Test JSON export"""
    monkeypatch.setattr('dnstwister.tools.dnstwist.DomainFuzzer',
                        patches.SimpleFuzzer)
    monkeypatch.setattr('dnstwister.tools.resolve', lambda domain:
                        ('999.999.999.999', False))

    domain = Domain('a.com')
    path = domain.to_hex()

    response = webapp.get('/search/{}/json'.format(path))

    assert response.headers[
        'Content-Disposition'] == 'attachment; filename=dnstwister_report_a.com.json'

    assert response.json == {
        u'a.com': {
            u'fuzzy_domains': [{
                u'domain-name': u'a.com',
                u'fuzzer': u'Original*',
                u'hex': u'612e636f6d',
                u'resolution': {
                    u'error': False,
                    u'ip': u'999.999.999.999'
                }
            }, {
                u'domain-name': u'a.co',
                u'fuzzer': u'Pretend',
                u'hex': u'612e636f',
                u'resolution': {
                    u'error': False,
                    u'ip': u'999.999.999.999'
                }
            }]
        }
    }