### 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.
"""Test that @dag uses function docs as doc_md for DAG object"""
        path = tmp_path / "testfile.md"
        path.write_text(
            """
        {% if True %}
            External Markdown DAG documentation
        {% endif %}
        """
        )
        @dag_decorator(
            "test-dag", start_date=DEFAULT_DATE, template_searchpath=os.fspath(path.parent), doc_md=path.name
        )
        def markdown_docs():
            ...
        dag = markdown_docs()
        assert isinstance(dag, DAG)
        assert dag.dag_id == "test-dag"
        assert dag.doc_md.strip() == "External Markdown DAG documentation"
    def test_fails_if_arg_not_set(self):
        """Test that @dag decorated function fails if positional argument is not set"""
        @dag_decorator(default_args=self.DEFAULT_ARGS)
        def noop_pipeline(value):
            @task_decorator
            def return_num(num):
                return num
            return_num(value)
        
        with pytest.raises(TypeError):
            noop_pipeline()
    def test_dag_param_resolves(self):