• yaroto98@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 day ago

    there’s a pretty simple solution IMHO. The faker python library is awesome at generating test data. Return a random dob everytime a site requests it.

    import faker
    faker fake
    return fake.date_of_birth(minimum_age=18, maximum_age=90)
    
    • Artwork@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      1 day ago

      A whole library, or a yet another ad for Python? Why not marvelous Perl, or any lovely PHP’s or a JavaScript faker?
      Why a library in the first place?

      In case of PHP (checked in v8.1)

      echo date('Y-m-d', rand(strtotime('-90 years'), strtotime('-18 years')));
      // 2007-07-30
      

      And, I had a snippet for JavaScript (tested in the current Chrome’s EcmaScript).
      We get the years in milliseconds, and substract from the current time.

      console.log(new Date(Date.now() - 365*24*60*60*1000 * (18 + Math.random()*72)).toISOString().slice(0, 10));
      // 1984-07-20
      

      In shell even! Let’s use the common suit GNU coreutils (e.g. v9.4).
      We have 90y - 18y = 72 years, that is 26,280 days or ~26,297 days (source)

      $ date -d "-18 years -$(( RANDOM % 26297 )) days" -- '+%F';
      # 1976-04-06
      
      • yaroto98@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        14 hours ago

        Mostly because it’s starting with dob, what happens when they require a phone number, address, credit card, or social security number? Faker can fake all those in that library. But you’re absolutely right, for one dob it is massive overkill.

        Also, I’m do test automation for my career. Litterally use faker daily for generating test data. Defaulting to it is natural and familiar. Most use what they’re familiar with, rarely the best solution for a task.

        • Artwork@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          8 hours ago

          Roger that! Thank you for being a developer and improving the ineffably magnificent world! ✨

          In this case, we do relatively the same, and usually in database seeding and model factories, I believe, but personally I am more into the Laravel and Symfony, where the mentioned above PHP library is used there under the hood.

          Please to stay safe!

          Related: https://laravel.com/docs/13.x/eloquent-factories

        • jimmy90@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          12 hours ago

          ikr

          a couple of distro admins remind lawmakers that people can do what they want with their computers and it’s python day on lemmy

      • jesta@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        21 hours ago

        A whole library, or a yet another ad for Python, sorry?

        This is more of a problem with how some people code more than python. I also find it irritating that some people import random libraries out of the internet to do simple things instead of actually spending the time to write two lines of code. Python has built in datetime library that could be used for this similar to the examples you gave.