Build Fast with confidence using Qodo Gen

Discover the Cutting-Edge Features

and the Vision and Trust Statements of Codiumate GETTING STARTED

Panel 1: Chat

Describe, Review and Improve Your Branch

/explain

Here is a detailed explantion of sherlock in sherlock.py:

The sherlock function is used to check for the existence of a username on various social media sites. It takes in the username, site data, query notify object, and optional parameters such as tor, unique_tor, proxy, and timeout. It creates … Finally, it returns a dictionary containing the results from the analysis of all sites.

Inputs

  • username (string): The username to check for existence on social media sites.
  • site_data (dictionary): A dictionary containing all the site data, including URLs and request information for each site.

Flow

  1. 1. Notify the caller that the query is starting.
  2. 2. Create a session based on the request methodology (Tor or normal requests).
  3. 3. Determine the maximum number of workers for the multi-threaded session.

Outputs

A dictionary containing the results from the analysis of all social media sites. The key of the dictionary is the name of the social network site, and the value is another dictionary with the following keys:

  • url_main: URL of the main site.
  • url_user: URL of the user on the site (if the account exists).

Usage example

# Import necessary modules and classes
import csv
import signal
...
# Define the site data dictionary
site_data = {"site1": {...}, "site2": {...}}
# Create a query notify object
query_notify = QueryNotifyPrint()
# Call the sherlock function with the username, site data, and query notify object
results = sherlock("myusername", site_data, query_notify)
# Print the results
for site, data in results. Items

Extend and Manage Tests

/review

PR Analysis

? Main theme: This PR primarily focuses on updating the Python version used in the project, updating the GitHub actions, and making changes to the list of supported sites.

?️ PR labels: Enhancement

? PR summary: The PR updates the Python version used in the project to 3.11 and updates the GitHub actions to use the latest versions of actions/checkout and actions/setup-python. It also changes the linting tool from flake8 to ruff. Additionally, it updates the list of supported sites, removing some and adding others.

? Relevant tests added: No

⏱️ Estimated effort to review [1-5]: 3, because the PR involves changes to multiple files and workflows, which requires a good understanding of the project structure and the GitHub actions used. However, the changes themselves are straightforward and do not introduce complex logic.

PR Feedback

? General suggestions: The changes to the Python version and the GitHub actions seem appropriate and up-to-date. However, it would be helpful to provide more context or reasoning for the change from flake8 to ruff for linting. Also, the changes to the list of supported sites should be clearly documented, explaining why some sites were removed and others were added.

? Security concerns: No

? PR Score: 85

Multi-Component Testing

/test
# correctly identifies available usernames
def test_correctly_identifies_available_usernames(self):
username = "john_doe"
site_data = {
"Twitter": {
"url": "https://twitter.com/{}",
"urlMain": "https://twitter.com/",
"errorType": "message",
"errorMsg": "Sorry, that page doesn’t exist!",
},
"Instagram": {
"url": "https://www.instagram.com/{}/",
"urlMain": "https://www.instagram.com/",
"errorType": "status_code",
"errorCode": 404,
},
"Facebook": {
"url": "https://www.facebook.com/{}",
"urlMain": "https://www.facebook.com/",
"errorType": "response_url",
},
}
query_notify = None
tor = False
unique_tor = False
proxy = None
timeout = 60

results = sherlock(username, site_data, query_notify, tor, unique_tor, proxy, timeout)

assert results["Instagram"]["status"] == QueryStatus.AVAILABLE
qodo

Panel 2: Advanced

Generate meaningful tests, find edge cases and suspicious behaviors, and be empowered to write reliable code.

Panel 2: Advanced

Finds edge cases and suspicious behaviors

Panel 2: Advanced

Empowers you to write code that functions the way you meant it

Panel 2: Advanced

Beyond code completion and generation tools, Qodo Gen helps you improve your code's integrity

qodo

Panel 2: Advanced

We support all major programming languages and git code hosting services

TestGPT supports all major languages
TestGPT supports all major languages

Our Vision

At Qodo, our vision is to create an intelligent software development world where developers can innovate fast and with confidence.

By analyzing code and generating comprehensive test suites, we save developers valuable time and effort. Our aim is to empower developers, foster a strong community, and enhance our offerings for teams and enterprises.

We take security, privacy and compliance seriously.

qodo

Only necessary code analyzed

qodo

Data is SSL Encrypted

qodo

SOC2 TYPE II Certified

qodo

Qodo isn't perfect

You should always double-check the tests Qodo generates

AI and ML have come a long way, but they're far from perfect. So while qodo helps you break fewer things and be more productive, it needs your help to do so. That's why we designed it to be interactive – so you can edit the tests it generates and perfect them.

Found a bug?

Qodo isn't perfect
qodo

I have a few
questions…

Check out our musings on generative AI, code integrity, and other geeky stuff:

  • Why don’t I just ask ChatGPT/Copilot to write my tests? How is qodo different?

    Q

    Unlike general-purpose code completion or generation tools, qodo focuses on code integrity: generating tests that help you understand how your code behaves, finding edge cases and suspicious behaviors, and making your code more robust. qodo is not just another fancy 'Language-model-API in your IDE' because: a. We're professionals in the testing-domain prompting.
    b. We parallelize and chain multiple prompts to create a unique variety of meaningful tests.
    c. We efficiently gather a broad code context for the prompts.
    d. We allow you to interact with each test separately.

  • When will I be able to start using qodo? Is it free?

    Q

    You can already do that! Just download our free VSCode extension and/or JetBrains plugin to get meaningful tests. qodo is free for individual developers, and we even plan to publish it as open-source. In the future, we'll be launching a paid plan for enterprises.

  • What languages are supported?

    Q

    We support practically every programming language. We provide support for these features in both VSCode and JetBrains IDEs.

  • How does qodo make sure my code stays secure?

    Q

    We take security, privacy, and compliance very seriously. qodo only analyzes the code necessary to provide it with enough context to generate meaningful tests, and the data is SSL encrypted. Additionally, we are SOC2 certified. To learn more, please visit our Trust Center.

  • Does qodo write perfect tests?

    Q

    AI and ML have come a long way, but nothing is perfect. While qodo can boost your productivity and improve code integrity, please always double-check the tests it generates. We are here to give you superpowers, but you still need to think and use them wisely.

  • I want to join you guys!

    Q

    We'd love to have that conversation. Please feel free to email us at [email protected], and attach your resume.