### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
"""
        Tests if a start_date of None in default_args
        works.
        """
        dag = DAG("DAG", default_args={"start_date": None})
        assert dag.timezone == settings.TIMEZONE
    def test_dag_task_priority_weight_total(self):
        width = 5
        depth = 5
        weight = 5
        pattern = re.compile("stage(\\d*).(\\d*)")
        
        
        
        with DAG("dag", start_date=DEFAULT_DATE, default_args={"owner": "owner1"}) as dag:
            pipeline = [
                [EmptyOperator(task_id=f"stage{i}.{j}", priority_weight=weight) for j in range(width)]
                for i in range(depth)
            ]
            for upstream, downstream in zip(pipeline, pipeline[1:]):
                for up_task, down_task in itertools.product(upstream, downstream):
                    down_task.set_upstream(up_task)
            for task in dag.task_dict.values():
                match = pattern.match(task.task_id)
                task_depth = int(match.group(1))
                
                correct_weight = ((depth - (task_depth + 1)) * width + 1) * weight
                calculated_weight = task.priority_weight_total
                assert calculated_weight == correct_weight
    def test_dag_task_priority_weight_total_using_upstream(self):